#!/bin/sh -u

set -o pipefail
# do not set -e yet, as autorepo-buildhelper-build-srpms can return false (build failed)

export LANG=C
export LANGUAGE=C

PROG=`basename $0`

show_help()
{
#  -q, --quiet                       try to be more quiet;
#  -v, --verbose                     print a message for each action;
	cat <<EOF
$PROG - script to build, test and integrate (with -c) the set of packages. Current path must be valid autorepo directory.

Usage: $PROG [options] pkg

Options:
  -d,--drop        drop package at first unsuccessful build
  -n, --number N   set hasher number (for parallel builds)
  -h, --help       show this text and exit.
EOF
}
usage()
{
    show_help
    exit 1
}

hashernumber=
rapid_drop_mode=
use_hashercache=

. autorepo-build-config

TEMP=`getopt -n $PROG -o Cdhn: -l drop,use-hasher-cache,no-use-hasher-cache,help,number: -- "$@"` || usage
eval set -- "$TEMP"

while :; do
    case "$1" in
	-d|--drop) rapid_drop_mode=1
		;;
	-h|--help) show_help; exit
		;;
	-C|--use-hasher-cache) use_hashercache=1
		;;
	--no-use-hasher-cache) use_hashercache=
		;;
	-n|--number) hashernumber=$2; shift;
		;;
	--) shift; break
		;;
	*) echo "Error parsing arguments. see --help" ; exit 1
		;;
    esac
    shift
done

name=
pkg=$1
case "$pkg" in
    *.tar)
	pkgfilename=`basename "$pkg"`
	name=`echo "$pkgfilename" | perl -npe 's,-[^-]*-[^-]*$,,'`
	autorepo-buildhelper-build-srpms ${use_hashercache:+--use-hasher-cache} ${hashernumber:+--number $hashernumber} ${rapid_drop_mode:+--drop} "$pkg"
	;;
    *.src.rpm)
	name=`rpmquery --queryformat '%{NAME}\n' -p $pkg`
	autorepo-buildhelper-build-srpms ${use_hashercache:+--use-hasher-cache} ${hashernumber:+--number $hashernumber} ${rapid_drop_mode:+--drop} "$pkg"
	;;
    *.transaction)
	pkgfilename=`basename "$pkg"`
	name=`echo "$pkgfilename" | perl -npe 's,\.transaction$,,'`
	autorepo-buildhelper-build-srpms ${use_hashercache:+--use-hasher-cache} ${hashernumber:+--number $hashernumber} ${rapid_drop_mode:+--drop} "$pkg"/*/*
	;;
esac

if [ -z "$name" ]; then
    echo
    echo "============================================================="
    echo "FAILED: name recognition for $pkg"
    echo "============================================================="
    exit 1
fi

autorepo-buildhelper-move-build ${hashernumber:+--number $hashernumber} "$name"

exit 0
