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

#GB_ARCH
#GB_REPO_COMPONENT_NAMES
#GOOD
#AUTOREPO_ROOT
#AUTOREPO_COMPONENT_NAME
#AUTOREPO_DEBUGINFO_COMPONENT_NAME

. autorepo-config

[ -d $GOOD ] || exit

tmplist=
cleanup_trap() {
    rm -f $tmplist
    exit
}
trap cleanup_trap INT TERM EXIT
tmplist=`mktemp`

for arch in $GB_NOARCH $GB_ARCH; do
    for component in $GB_REPO_COMPONENT_NAMES; do
	mkdir -p "$AUTOREPO_ROOT/$arch/RPMS.$component"
    done
done


# 2>/dev/null because $GOOD/* may not expand.
rpmquery --queryformat '%{NAME}\n' -p $GOOD/*/SRPMS.hasher/*.src.rpm > $tmplist 2>/dev/null ||:
if [ -s $tmplist ];then 
    autorepo-clean-names `cat $tmplist`
    rm -f $tmplist
    pushd $GOOD >/dev/null
    for dname in */; do
	if [ -d $dname ]; then
	    #name=`basename $dname`
	    #echo $name
	    for arch in $GB_ARCH; do
		if [ -n "$GB_NOARCH" ]; then
		    mv -f "$dname"/$arch/RPMS.hasher/*.noarch.rpm "$AUTOREPO_ROOT/$GB_NOARCH/RPMS.$AUTOREPO_COMPONENT_NAME"/ 2>/dev/null ||:
		fi
		if [ -n "$AUTOREPO_DEBUGINFO_COMPONENT_NAME" ]; then
		    mv -f "$dname"/$arch/RPMS.hasher/*-debuginfo-*-*.rpm "$AUTOREPO_ROOT/$arch/RPMS.$AUTOREPO_DEBUGINFO_COMPONENT_NAME"/ 2>/dev/null ||:
		fi
		mv -f "$dname"/$arch/RPMS.hasher/*.rpm "$AUTOREPO_ROOT/$arch/RPMS.$AUTOREPO_COMPONENT_NAME"/ 2>/dev/null ||:
		mv -f "$dname"/SRPMS.hasher/*.src.rpm $AUTOREPO_ROOT/$AUTOREPO_SHARED_SRPMS/ 2>/dev/null ||:
	    done
	    if [ -n "$GB_NOARCH" -a -d "$dname/$GB_NOARCH"/RPMS.hasher ]; then
		    mv -f "$dname/$GB_NOARCH"/RPMS.hasher/*.noarch.rpm "$AUTOREPO_ROOT/$GB_NOARCH/RPMS.$AUTOREPO_COMPONENT_NAME"/ 2>/dev/null ||:
	    fi
	    rm -rf "$dname"
	fi
    done
    popd >/dev/null
fi
rm -f $tmplist
