#!/bin/sh

## $Id$

# Automate a clean check out, make all, check, distcheck.  On error, complain
# to stdout and return 1.  Suitable for a cron job.

# need to set PATH because we might be running from a cron job.
# on our Solaris servers, cvs is in /opt/misc/bin

if [ -d /disks/asimov ]; then
    PATH=/disks/philmor/a/users/quarl/local/Node-SOLARIS/bin:/disks/philmor/a/users/quarl/local/bin:/disks/philmor/a/users/quarl/bin:/usr/local/gcc/bin:/usr/local/gdb/bin:/usr/ccs/bin:/usr/local/cygnus:/disks/milkyway/a/users/anderson/seti/bin:/disks/cyclops/c/users/seti/s4/siren/bin:/disks/cyclops/c/users/seti/s4/siren/scripts:/disks/cyclops/c/users/seti/s4/siren/scripts/s4pipeline:/opt/misc/bin:/usr/ucb:/usr/bin:/usr/sbin:/usr/openwin/bin:/usr/dt/bin:/opt/misc/rsi/idl/bin:/opt/misc/lib/teTeX/bin:/disks/asimov/a/lang/gcc/bin:.:/usr/local/sbin:/usr/local/bin:/sbin:/usr/games
    export PATH
fi

CHECKOUT="CVSROOT=/usr/local/warez/cvsroot cvs co boinc"
TMPDIR=/tmp/testbase

die()
{
    echo "ERROR in testbase on `hostname`:"
    echo "$1"
    [ "$2" ] && cat "$2"
    exit 1
}

reqeval()
{
    eval "$1" || die "error executing: $1"
}

reqeval_log()
{
    eval "$1" > $2 2>&1 || die "error executing: $1" $2
}

if [ -z "$USER" ]; then
    USER=$LOGNAME
    export USER
fi

chmod -R u+w $TMPDIR 2>/dev/null
reqeval "rm -rf $TMPDIR"
reqeval "mkdir -p $TMPDIR"
reqeval "cd $TMPDIR"
reqeval_log "$CHECKOUT"      checkout.log
reqeval "cd boinc"
reqeval_log "./configure"    configure.log
reqeval_log "make all"       make_all.log
reqeval_log "make check"     make_check.log
# reqeval_log "make distcheck" make_distcheck.log
