#!/bin/sh -eu
set -o pipefail

nproc=`nproc`
: ${nproc:=8}

PROG=`basename $0`

show_help()
{
#  -q, --quiet                       try to be more quiet;
#  -v, --verbose                     print a message for each action;
	cat <<EOF
$PROG - script perform an atomic build.
Usage: $PROG [options]
Options:
  -K, --keep-hasher-cache
  -h, --help       show this text and exit.
EOF
	exit
}
usage()
{
    show_help
    exit 1
}

keep_hashercache=
. autorepo-build-config

TEMP=`getopt -n $PROG -o Kh -l keep-hasher-cache,no-keep-hasher-cache,help -- "$@"` || usage
eval set -- "$TEMP"

while :; do
    case "$1" in
	-K|--keep-hasher-cache) keep_hashercache=1
		;;
	--no-keep-hasher-cache) keep_hashercache=
		;;
	-h|--help) show_help
		;;
	--) shift; break
		;;
	*) echo "Error parsing arguments. see --help" ; exit 1
		;;
    esac
    shift
done

# if there are no hashers/chroot, hsh-rmchroot will fail; so ||:
if [ -n "$keep_hashercache" ]; then
    ls -d ${AR_BUILDER_HASHER_PREFIX:-~/hasher}[0-9]* | parallel --will-cite -j$nproc hsh-rmchroot >/dev/null 2>&1 ||:
    ls -d ${AR_BUILDER_HASHER_PREFIX:-~/hasher}[0-9]* | parallel --will-cite -j$nproc rm -rf '{}' >/dev/null 2>&1 ||:
else
    ls -d ${AR_BUILDER_HASHER_PREFIX:-~/hasher}* | parallel --will-cite -j$nproc hsh-rmchroot >/dev/null 2>&1 ||:
    ls -d ${AR_BUILDER_HASHER_PREFIX:-~/hasher}* | parallel --will-cite -j$nproc rm -rf '{}' >/dev/null 2>&1 ||:
fi
exit 0
