#!/bin/sh

# usage:
# ./$0 [--egrep <pattern>] hsh --apt-config=$aptconfig --mountpoints=/proc --number=$number $hasherdir $rpm

EGREPARG=
if [ "$1" == '-e' ] || [ "$1" == '--egrep' ]; then
    EGREPARG=$2
    shift; shift;
elif [ "${1%%=*}" == '--egrep' ]; then
    EGREPARG="${1##--number=}"
    shift
fi

log=hsh.log.$$
# the last arg
rpm=
# the prev arg
hasherdir=
for i; do
    hasherdir="$rpm"
    rpm="$i"
    case "$i" in
	--number=*)
            log=hsh.log."${i##--number=}"
	    ;;
    esac
done

baserpm=`basename $rpm`;
if ! [ -e $rpm ]; then
    mkdir -p missing
    touch missing/$baserpm.log
else
    if [ -z "$EGREPARG" ] || rpmquery --requires -p $rpm | egrep "$EGREPARG" >/dev/null; then
	echo "$number: rebuilding $rpm in $hasherdir"
	[ -d $hasherdir ] || mkdir -p $hasherdir
	if  > $log 2>&1; then
	    mkdir -p success
	    mv $log success/${baserpm}.log
	else
	    mkdir -p failure failure.name
	    name=`rpmquery --queryformat '%{NAME}\n' -p $rpm`
	    touch failure.name/$name
	    mv $log failure/${baserpm}.log
	    echo " FAILED:$number: $rpm"
	fi
	rm -f $hasherdir/repo/SRPMS.hasher/*.src.rpm $hasherdir/repo/*/RPMS.hasher/*.rpm
    fi
fi
