#!/bin/sh -e

# usage: <taskname>

if [ -d ~/src/repo/logoved.git ]; then
    PATH=~/src/repo/logoved.git:$PATH
    export PATH
fi

taskname=$1
default_taskname=up
if [ -z "$taskname" ]; then
    taskname=$default_taskname
else
    case "$taskname" in
	--*)
	    taskname=$default_taskname
	    ;;
	*)
	    shift
	    ;;
    esac
fi

if ! [ -d OUT ] || ! [ -d TASK.BAD ]; then
    echo "ERROR: OUT or TASK.BAD not found"
    exit 1
fi

dirpattern=task$taskname
iterdir=$dirpattern-1
prevdir=$dirpattern-2
# check and mov previous iterations
for i in `seq 299 -1 1`; do
    if [ -d $dirpattern-$i ]; then
	mv $dirpattern-$i $dirpattern-$((i+1))
    fi
done

if [ -d $iterdir ]; then
    echo "$0: iteration failed: $iterdir already exists."
    exit 1
fi

mkdir -p $iterdir
mv OUT TASK.* $iterdir
#autorepo-helper-rm-good-from-out $iterdir
# clean up empty dirs
rmdir -p $iterdir/TASK.* $iterdir/OUT >/dev/null 2>&1 || :
[ -d $iterdir/TASK.BAD ] || exit 0
[ -d $iterdir/OUT ] || exit 0

opt_oldscript=
if [ -d "$prevdir" ]; then
    if [ -e "$prevdir"/00OLDSCRIPT ]; then
	cat "$prevdir"/00OLDSCRIPT > $iterdir/00OLDSCRIPT
    fi
    if [ -e "$prevdir"/LOGS/00FIXSCRIPT ]; then
	cat "$prevdir"/LOGS/00FIXSCRIPT >> $iterdir/00OLDSCRIPT
    fi
    [ -e $iterdir/00OLDSCRIPT ] && opt_oldscript=$iterdir/00OLDSCRIPT
fi

set -x
pushd $iterdir >/dev/null 2>&1
time logoved-report --logoved-mangle-logname=autorepo --hide-fixable $LOGOVED_REPORT_OPTIONS TASK.BAD
popd >/dev/null 2>&1
if [ -e $iterdir/LOGS/00FIXSCRIPT ]; then
    time logoved-batchfix-srpm --outdir=OUT $LOGOVED_BATCHFIX_OPTIONS ${opt_oldscript:+--oldbatch $opt_oldscript} --batch $iterdir/LOGS/00FIXSCRIPT --rejected-batch=$iterdir/00REJECTED --input-srpm-dir $iterdir/OUT
    if [ -e $iterdir/00REJECTED ]; then
	logoved-autorepo-helper-link-rejected-batch $iterdir/00REJECTED
    fi
fi
