#!/bin/sh -eu

arches="x86_64 i586"
move_cmd=cp
destdir=./rebuild
addon_flavour=hasher
[ -e .repofork-config ] && . .repofork-config

PROG=`basename $0`
show_help()
{
	cat <<EOF
$PROG - create repofork add-on repo from autorepo TASK.GOOD build results

Usage: $PROG [options] addrepo1 ... addrepoN

Options:
  --addon-component-name=<name>  addon repository component name (default is $addon_flavour)
  --arch="i586 x86_64"           binary architectures to add
  --destdir=/path                where to create the add-on repository (default is $destdir)
  --cp                           copy files (default)
  --mv                           move files
  --ln                           hard link files
  -h, --help                     show this text and exit.

Report bugs to http://bugs.altlinux.ru/

EOF
}

show_usage()
{
	show_help
	exit
}

parse_common_option()
{
	echo "ERROR: unsupported option $1"
	show_usage
}

TEMP=`getopt -n $PROG -o h -l addon-component-name:,arch:,cp,destdir:,help,ln,mv -- "$@"` ||
	show_usage
eval set -- "$TEMP"

while :; do
	case "$1" in
		--arch) shift; arches="$1";
			;;
		--destdir) shift; destdir="$1";
			;;
		--addon-component-name) shift; $addon_flavour="$1";
			;;
		--cp) move_cmd="cp";
			;;
		--ln) move_cmd="ln";
			;;
		--mv) move_cmd="mv";
			;;
		--help|-h) show_help; exit;
			;;
		--) shift; break
			;;
		*) parse_common_option "$1"
			;;
	esac
	shift
done



taskgood=$1
if ! [ -d $taskgood ]; then
    echo "first arg should be a path to TASK.GOOD"
    exit 1
fi

addon_name=$2
if [ -z "$addon_name" ]; then
    echo "second arg should be a name for the addon"
    exit 1
fi

shopt -s nullglob

mkdir -p $destdir/$addon_name/SRPMS.$addon_flavour
$move_cmd -t $destdir/$addon_name/SRPMS.$addon_flavour $taskgood/*/SRPMS.*/*.src.rpm
for rarch in noarch $arches; do
    mkdir -p $destdir/$addon_name/$rarch/RPMS.$addon_flavour
done
for rarch in $arches; do
    $move_cmd -t $destdir/$addon_name/noarch/RPMS.$addon_flavour $taskgood/*/$rarch/RPMS.*/*.noarch.rpm 2>/dev/null ||:
done
for rarch in $arches noarch; do
    $move_cmd -t $destdir/$addon_name/$rarch/RPMS.$addon_flavour $taskgood/*/$rarch/RPMS.*/*.$rarch.rpm 2>/dev/null ||:
done
# drop empty
for rarch in noarch $arches; do
    rmdir -p $destdir/$addon_name/$rarch/RPMS.$addon_flavour 2>/dev/null ||:
done
