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

#GB_ARCH GB_NOARCH
#GB_REPO_COMPONENT_NAMES
#AUTOREPO_ROOT
#AUTOREPO_COMPONENT_NAME
#AUTOREPO_DEBUGINFO_COMPONENT_NAME
#AUTOREPO_SHARED_SRPMS

. autorepo-config

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

for arch in $GB_NOARCH $GB_ARCH; do
    for component in $GB_REPO_COMPONENT_NAMES; do
	pushd "$AUTOREPO_ROOT/$arch/RPMS.$component" >/dev/null
	rpmquery --qf '%{SOURCERPM}\n' -p *.rpm >> $tmpdir/sourcerpm.collected 2>/dev/null
	popd >/dev/null
    done
done
pushd $AUTOREPO_ROOT/$AUTOREPO_SHARED_SRPMS/ >/dev/null
ls | sort > $tmpdir/sourcerpm.provided
rpmquery --qf '%{NAME}\n' -p *.rpm | sort | uniq -d > $tmpdir/sourcerpm.duplicate
popd >/dev/null
sort -u $tmpdir/sourcerpm.collected > $tmpdir/sourcerpm.required
comm -23 $tmpdir/sourcerpm.required $tmpdir/sourcerpm.provided > $tmpdir/sourcerpm.missing
comm -13 $tmpdir/sourcerpm.required $tmpdir/sourcerpm.provided > $tmpdir/sourcerpm.dangling

for i in $tmpdir/sourcerpm.missing $tmpdir/sourcerpm.dangling $tmpdir/sourcerpm.duplicate; do
    rm -f $AUTOREPO_HOME/`basename $i`
    if [ -s $i ]; then
	basename $i
	echo ------------------------
	cat $i
	echo ------------------------
	cp -f $i $AUTOREPO_HOME/
    fi
done

rm -rf $tmpdir
