]> mj.ucw.cz Git - moe.git/blobdiff - public/submit
Split off mo-create-eval from mo-install.
[moe.git] / public / submit
index fc7c08e9553324be44fbe5c8d56611e7050fbb74..ac73dbc32bf384858ec61628a35088487c20d871 100755 (executable)
@@ -1,20 +1,42 @@
 #!/bin/bash
 # The Evaluator -- Public Submit Script
-# (c) 2001--2004 Martin Mares <mj@ucw.cz>
+# (c) 2001--2007 Martin Mares <mj@ucw.cz>
 
 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 <source-file>] <problem> [<test-number>]"
+}
+
 FORCE=0
 if [ "$1" = --force ] ; then
        FORCE=1
        shift
 fi
-[ -n "$1" -o "$1" = "--help" ] || die "Usage: submit [--force] <problem> [<test-number>]"
+[ -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,15 +51,15 @@ 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
+               ln "$SDIR/$SRCN" $TDIR/$TEST.out
                syntax-check
                test-result 1 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
                (
@@ -52,6 +74,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 +85,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 +94,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"