#!/bin/sh

# $HOME/.corpus should contain settings for these values:
#
# tree=/home/corpus/cvs/spamassassin
# username=joe
# password=xyzzy

. $HOME/.corpus

renice 10 -p $$

set -x
set -e
export RSYNC_PASSWORD=$password
export TIME="%e,%U,%S"
export TZ=UTC

# ensure we're running after 0900 UTC
if date | egrep -q '^... ... .. (08|10):'; then
	exit
fi

# day of week
if date | egrep -q '^Sat' || [ "$1" = "net" ]; then
	net="net-"
else
	net=""
fi

# enter tree
cd $tree

# random sleep
perl -e 'sleep int(rand(600));'

# update
set +e
retry=0
while true; do
	if cvs -z3 update -dP -r CURRENT_CORPORA_SUBMIT_VERSION; then
		break;
	fi
	if [ $retry -eq 120 ]; then
		exit 1
	fi
	retry=$(( $retry + 1 ))
	sleep 30
done
set -e

# run test
cd masses
rm -f spamassassin/bayes*
rm -f razor-agent.log
date > test.start
if [ -n "$net" ]; then
	./mass-check --net -j 8 -f /home/corpus/mail/corpus
else
	./mass-check -f /home/corpus/mail/corpus
fi
uptime
date > test.end

# submit results
rsync -CPcvuzb --timeout=60 ham.log $username@rsync.spamassassin.org::corpus/ham-$net$username.log
rsync -CPcvuzb --timeout=60 spam.log $username@rsync.spamassassin.org::corpus/spam-$net$username.log
