--- /dev/null
+#!/bin/bash
+
+if ! which git || ! which g++ || ! which scons || ! which make ; then
+ sudo apt-get -y install make g++ scons git-core || exit -4
+fi
+
+if [ ! -e ~/include/gtest/gtest.h ]; then
+ mkdir tmp
+ cd tmp || exit -3
+ wget -c http://googletest.googlecode.com/files/gtest-1.4.0.tar.bz2 || exit -2
+ rm -rf gtest-1.4.0
+ tar -xjf gtest-1.4.0.tar.bz2 || exit -1
+ cd gtest-1.4.0 || exit 1
+ ./configure --prefix=$HOME || exit 2
+ make || exit 3
+ make install || exit 4
+fi
+
+if [ ! -e swift ]; then
+ git clone git://github.com/gritzko/swift.git || exit 6
+fi
+cd swift
+git pull || exit 5
+
+CPPPATH=~/include LIBPATH=~/lib scons -j4 || exit 7
+tests/connecttest || exit 8
+
--- /dev/null
+#!/bin/bash
+
+HOST=$1
+CMD=$2
+
+if [ -e $CMD.$HOST.sh ] ; then
+ SHSC=$CMD.$HOST.sh ;
+else
+ SHSC=$CMD.default.sh ;
+fi
+
+if ( cat $SHSC | ssh $HOST ) > .$HOST.$CMD.out 2> .$HOST.$CMD.err; then
+ echo $HOST $CMD OK
+ exit 0
+else
+ echo $HOST $CMD FAIL
+ cat .$HOST.$CMD.out .$HOST.$CMD.err
+ exit 1
+fi
--- /dev/null
+#!/bin/bash
+# This script executes a chain of commands
+# on all the member servers, in parallel.
+# Commands are defined in .sh files (see
+# docmd.sh); all failed executions are
+# put to the FAILURES file
+rm -f FAILURES
+for srv in `cat servers.txt`; do
+ ( for cmd in $@; do
+ if ! ./docmd.sh $srv $cmd; then
+ echo $srv >> FAILURES
+ echo $src FAILED
+ break
+ fi
+ done ) &
+done
+
+wait
+echo DONE