aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorcassio <cassiopc@gmail.com>2015-08-10 01:11:10 +0000
committercassio <cassiopc@gmail.com>2015-08-10 01:11:10 +0000
commit0ec22acb9a0b7700eb9b8577d57cc26aee69ac03 (patch)
tree5626985ff997e376ae498ec424e166f7393e6eb4 /tools
parente80e0bbdb0b44f95caf6ee69456a05f1c4da65c3 (diff)
downloadboca-0ec22acb9a0b7700eb9b8577d57cc26aee69ac03.tar.gz
boca-0ec22acb9a0b7700eb9b8577d57cc26aee69ac03.zip
scripts to submit, still to complete
Diffstat (limited to 'tools')
-rw-r--r--tools/boca-submit-run55
-rwxr-xr-xtools/boca-submit-run-aux73
-rw-r--r--tools/boca-submit-run-root10
3 files changed, 138 insertions, 0 deletions
diff --git a/tools/boca-submit-run b/tools/boca-submit-run
new file mode 100644
index 0000000..d6e7685
--- /dev/null
+++ b/tools/boca-submit-run
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+[ -x /etc/icpc/bocaservers.sh ] && . /etc/icpc/bocaservers.sh
+[ -x /etc/icpc/bocaserver.sh ] && . /etc/icpc/bocaserver.sh
+if [ "$BOCASERVER" != "" ]; then
+ if [ "$BOCASERVERS" == "" ]; then
+ BOCASERVERS=$BOCASERVER
+ else
+ BOCASERVERS="$BOCASERVERS;$BOCASERVER"
+ fi
+fi
+
+if [ "$BOCASERVERS" == "" ]; then
+ echo "This computer has no configured BOCA server. Ask an admin to update /etc/icpc/bocaserver.sh (usually resetting everything is an easy way)"
+ exit 1
+fi
+
+
+for i in uuencode wget tr perl sha256sum cut; do
+ p=`which $i`
+ if [ -x "$p" ]; then
+ echo -n ""
+ else
+ echo "$i" not found
+ exit 1
+ fi
+done
+temp=/tmp/.temp.`date +%s%N`.txt
+
+if [ "$1" == "" ]; then
+ echo "Usage: $0 USER PASSWORD PROBLEM LANGUAGE FILE"
+ echo ""
+ echo "where USER is your username"
+ echo "PASSWORD is your password"
+ echo "FILE is your submission file"
+ echo "PROBLEM and LANGUAGE are according to defined in BOCA"
+ exit 1
+fi
+
+if [ -r "$5" ]; then
+ nom=`echo -n "$5" | perl -MURI::Escape -lne 'print uri_escape($_)'`
+ for BOCASERVER in `echo $BOCASERVERS | cut -d';'`; do
+ echo "$BOCASERVER: time-out - this will automatically retry soon, you should not worry"
+ echo "BOCASERVER=$BOCASERVER" > $temp
+ echo "user=$user" >> $temp
+ echo "pass=$pass" >> $temp
+ echo "name=${nom}" >> $temp
+ echo -n "data=" >> $temp
+ uuencode -m zzzzzzzzzz < "$5" | grep -v "begin-base64.*zzzzzzzzzz" | perl -MURI::Escape -lne 'print uri_escape($_)' >> $temp
+ echo "" >> $temp
+ boca-submit-run-aux $temp
+ done
+else
+ echo "file $1 not found/readable"
+fi
diff --git a/tools/boca-submit-run-aux b/tools/boca-submit-run-aux
new file mode 100755
index 0000000..fcaffaa
--- /dev/null
+++ b/tools/boca-submit-run-aux
@@ -0,0 +1,73 @@
+#!/bin/bash
+
+[ -x /etc/icpc/bocaserver.sh ] && . /etc/icpc/bocaserver.sh
+if [ "$BOCASERVER" == "" ]; then
+ echo "This computer has no configured BOCA server. Ask an admin to update /etc/icpc/bocaserver.sh (usually resetting everything is an easy way)"
+ exit 1
+fi
+
+[ -x /etc/icpc/bocaservers.sh ] && . /etc/icpc/bocaservers.sh
+if [ "$BOCASERVERS" == "" ]; then
+ BOCASERVERS=$BOCASERVER
+else
+ BOCASERVERS="$BOCASERVER;$BOCASERVER"
+fi
+
+for i in uuencode wget tr perl sha256sum cut; do
+ p=`which $i`
+ if [ -x "$p" ]; then
+ echo -n ""
+ else
+ echo "$i" not found
+ exit 1
+ fi
+done
+temp=/tmp/.temp.`date +%s%N`.txt
+
+if [ "$1" == "" ]; then
+ echo "Usage: $0 USER PASSWORD PROBLEM LANGUAGE FILE"
+ echo ""
+ echo "where USER is your username"
+ echo "PASSWORD is your password"
+ echo "FILE is your submission file"
+ echo "PROBLEM and LANGUAGE are according to defined in BOCA"
+ exit 1
+fi
+
+if [ -r "$5" ]; then
+ nom=`echo -n "$5" | perl -MURI::Escape -lne 'print uri_escape($_)'`
+ for BOCASERVER in `echo $BOCASERVERS | cut -d';'`; do
+ md=`wget -t 2 -T 7 -S http://$BOCASERVER/boca/index.php -O /dev/null --save-cookies /tmp/.cookie.txt --keep-session-cookies 2>&1 | grep PHPSESS | tail -n1`
+ echo "$md" | grep -q PHPSESS
+ if [ "$?" == "0" ]; then
+ md=`echo $md | cut -f2 -d'=' | cut -f1 -d';'`
+ user=$1
+ pass=$2
+ res=`echo -n $pass | sha256sum - | cut -f1 -d' '`
+ res=`echo -n "${res}${md}" | sha256sum - | cut -f1 -d' '`
+ wget "http://$BOCASERVER/boca/index.php?name=${user}&password=${res}" --load-cookies /tmp/.cookie.txt --keep-session-cookies --save-cookies /tmp/.cookie.txt -O $temp 2>/dev/null >/dev/null
+ grep -qi incorrect $temp
+ if [ $? == 0 ]; then
+ echo "$BOCASERVER: User or password incorrect"
+ else
+ echo -n "name=${nom}&data=" > $temp
+ uuencode -m zzzzzzzzzz < $1 | grep -v "begin-base64.*zzzzzzzzzz" | perl -MURI::Escape -lne 'print uri_escape($_)' >> $temp
+ wget "http://$BOCASERVER/boca/team/getfile.php" --load-cookies /tmp/.cookie.txt --keep-session-cookies -O /dev/null --post-file=$temp >/dev/null 2>/dev/null
+ fi
+ rm -f $temp
+ rm -f /tmp/.cookie.txt
+ else
+ echo "$BOCASERVER: time-out - this will automatically retry soon, you should not worry"
+ echo "BOCASERVER=$BOCASERVER" > $temp
+ echo "user=$user" >> $temp
+ echo "pass=$pass" >> $temp
+ echo "name=${nom}" >> $temp
+ echo -n "data=" >> $temp
+ uuencode -m zzzzzzzzzz < "$5" | grep -v "begin-base64.*zzzzzzzzzz" | perl -MURI::Escape -lne 'print uri_escape($_)' >> $temp
+ echo "" >> $temp
+ boca-submit-run-root $temp
+ fi
+ done
+else
+ echo "file $1 not found/readable"
+fi
diff --git a/tools/boca-submit-run-root b/tools/boca-submit-run-root
new file mode 100644
index 0000000..77b4ff9
--- /dev/null
+++ b/tools/boca-submit-run-root
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+if [ "$1" != "" ]; then
+ mkdir -p /root/submissions
+ chown root /root/submissions
+ chmod 700 /root/submissions
+ cp "$1" /root/submissions
+ echo "date=`date +%s`" >> "/root/submissions/$1"
+ echo "code=`cat /root/submissions/code`" >> "/root/submissions/$1"
+fi