X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=public%2Fsubmit;h=f597ee46b17eabf5ae1fdd5ab6067aeba06b3186;hb=50cc126ebe949259a54f153a123848d771601b77;hp=fc7c08e9553324be44fbe5c8d56611e7050fbb74;hpb=eff3e813ec7d6c246dfadea41432fd68ec2e86fd;p=eval.git diff --git a/public/submit b/public/submit index fc7c08e..f597ee4 100755 --- a/public/submit +++ b/public/submit @@ -1,20 +1,42 @@ #!/bin/bash # The Evaluator -- Public Submit Script -# (c) 2001--2004 Martin Mares +# (c) 2001--2007 Martin Mares set -e [ -n "$MO_ROOT" -a -d "$MO_ROOT" ] || { echo >&2 "MO_ROOT not set, giving up." ; exit 1 ; } . $MO_ROOT/bin/lib . $MO_ROOT/config +function usage +{ + die "Usage: submit [--force] [-s ] []" +} + FORCE=0 if [ "$1" = --force ] ; then FORCE=1 shift fi -[ -n "$1" -o "$1" = "--help" ] || die "Usage: submit [--force] []" +[ -n "$1" -a "$1" != "--help" ] || usage +SRCFILE= +while getopts "s:" opt ; do + case $opt in + s) SRCFILE="$OPTARG" + ;; + *) usage + ;; + esac +done +shift $(($OPTIND-1)) +[ -n "$1" ] || usage PROBLEM=$1 -PART=$2 +PART= +shift +if [ -n "$1" ] ; then + PART="$1" + shift +fi +[ -z "$1" ] || usage public-setup . $PDIR/config @@ -29,19 +51,21 @@ if [ $TASK_TYPE == open-data ] ; then [ -n "$PART" ] || die "You need to specify test number for open data problems." TEST=$PART pstart "Test case $TEST: " - open-locate + open-locate "$SRCFILE" ( - ln $SRCN $TDIR/$TEST.out + [ -f $PDIR/$TEST.config ] && . $PDIR/$TEST.config + try-ln "$SDIR/$SRCN" $TDIR/$TEST.out syntax-check - test-result 1 OK + test-result $POINTS_PER_TEST OK ) || FAILED=1 else [ -z "$PART" ] || die "Test number should be given only for open data problems." - locate-source + locate-source "$SRCFILE" compile for TEST in $SAMPLE_TESTS ; do ( pstart "Checking on sample input $TEST: " + [ -f $PDIR/$TEST.config ] && . $PDIR/$TEST.config test-run syntax-check output-check @@ -52,6 +76,7 @@ fi if [ $FAILED != 0 ] ; then if [ $FORCE != 0 ] ; then + echo "Submit forced." pend "TESTS FAILED, but --force given, so submitting anyway." else pend "TESTS FAILED. Nothing has been submitted!" @@ -62,7 +87,7 @@ fi if [ -n "$REMOTE_SUBMIT" ] ; then pstart "Submitting to the server... " - $MO_ROOT/bin/remote-submit $PROBLEM $PART $SRCN + $MO_ROOT/bin/remote-submit $PROBLEM $PART "$SDIR/$SRCN" pend "OK" exit 0 fi @@ -71,10 +96,10 @@ pstart "Submitting... " mkdir -p ~/.submit if [ $TASK_TYPE == open-data ] ; then mkdir -p ~/.submit/$PROBLEM - cp $SRCN ~/.submit/$PROBLEM/$PART.out + cp "$SDIR/$SRCN" ~/.submit/$PROBLEM/$PART.out else rm -rf ~/.submit/$PROBLEM mkdir -p ~/.submit/$PROBLEM - cp $SRCN ~/.submit/$PROBLEM/ + cp "$SDIR/$SRCN" ~/.submit/$PROBLEM/ fi pend "OK"