#!/bin/sh
#
# Does a complete automated build: checks out charm, 
# builds on each system, and sends the final e-mail.
#
# Orion Sky Lawlor, olawlor@acm.org, 2002/2/3
#

source config

echo "Autobuild initiated" `date` by `id`

# Run this command or die
Do() {
	echo "autobuild> " $@
	$@
	err="$?"
	if [ $err -ne 0 ] 
	then
		echo "error code $err during autobuild> " $@ 
		exit 1
	fi
}

# Clean out old files
rm -fr charm* bin messages scripts status web
mkdir bin messages scripts status web
./update_web_start

# Do a clean cvs checkout:
export CVSROOT=":pserver:checkout@charm.cs.uiuc.edu:/cvsroot"
echo "autobuild> Checking out fresh charm version from $CVSROOT"
Do cvs -d $CVSROOT co -P charm++ > /dev/null
Do tar cf charm.tar charm

echo "autobuild> Copying charm version to $webMachine"
Do cp charm.tar charm_src.tar
Do gzip charm_src.tar
Do scp charm_src.tar.gz $webMachine:$webMachBin
Do scp charm_src.tar.gz $webMachine:$webMachCur
Do rm charm_src*

# Build on all systems (in parallel)
echo "autobuild> Building..."
./build_on_all

# After waiting four hours, send out results via e-mail
echo "Waiting to send e-mail:"
sleep `expr 3600 '*' 4`
./update_email
