Index: build/test/do-nightly-tests-and-publish
==================================================================
--- build/test/do-nightly-tests-and-publish
+++ build/test/do-nightly-tests-and-publish
@@ -3,44 +3,69 @@
 # Update PATH to include path to Tclkit, otherwise cross-compiles will fail
 PATH="${PATH}:/home/rkeene/bin:/usr/local/bin"
 export PATH
 
 # Define build and web paths
-KITCREATORDIR="/home/rkeene/devel/kitcreator"
+KITCREATORFOSSIL="/web/customers/kitcreator.rkeene.org/repo/kitcreator.repo"
 WEBROOTDIR="/web/rkeene/devel/kitcreator/kitbuild"
-export KITCREATORDIR WEBROOTDIR
-
-cd "${KITCREATORDIR}" || exit 1
+MARKERFILE="/web/customers/kitcreator.rkeene.org/repo/__AUTO_TESTS_RUNNING__"
+TMPWORKDIR="${TMPDIR:-/var/tmp}/kitcreator-test-$$${RANDOM}${RANDOM}${RANDOM}"
+export KITCREATORFOSSIL WEBROOTDIR MARKERFILE TMPWORKDIR
 
-FOSSIL_CHANGE="$(fossil timeline -n 1 -t ci | grep '^[0-9:]* \[' | sed 's@^[0-9:]* \[\([0-9a-f]*\)\].*$@\1@')"
+# Determine change of fossil revision
+FOSSIL_CHANGE="$(fossil timeline --repository "${KITCREATORFOSSIL}" -n 1 -t ci | grep '^[0-9:]* \[' | sed 's@^[0-9:]* \[\([0-9a-f]*\)\].*$@\1@')"
 TESTNAME="fossil_${FOSSIL_CHANGE}"
 export FOSSIL_CHANGE TESTNAME
 
 # On Wednesday, do a distclean to force redownloading everything (mainly
 # for CVS Head) and force a rebuild to ensure up-to-date build status
-if [ "$(date '+%u')" = "3" ]; then
-	./kitcreator distclean || exit 1
-else
+if [ "$(date '+%u')" != "3" ]; then
 	if [ -d "${WEBROOTDIR}/${TESTNAME}" ]; then
 		# Don't re-run the tests if nothing has changed
 		exit 0
 	fi
 fi
 
-cd build/test || exit 1
-
-if [ ! -x test -o ! -x publish-tests ]; then
-	echo 'Missing scripts, aborting.' >&2
-
+# Only run one at a time
+if [ -f "${MARKERFILE}" ]; then
 	exit 1
 fi
+touch "${MARKERFILE}"
+
+# Change to temporary directory to build
+mkdir -p "${TMPWORKDIR}"
+chmod 700 "${TMPWORKDIR}"
+
+cd "${TMPWORKDIR}" || exit 1
+
+# Define clean-up handler
+function die () {
+	echo "$1" >&2
+
+	cd /
 
-# Only run one at a time
-if [ -f '__AUTO_TESTS_RUNNING__' ]; then
+	rm -rf "${TMPWORKDIR}"
+
 	exit 1
+}
+
+# Download latest tarball
+wget -O 'kitcreator-trunk-tip.tar.gz' -o /dev/null 'http://kitcreator.rkeene.org/fossil/tarball/kitcreator-trunk-tip.tar.gz?uuid=trunk'
+
+tar -xf kitcreator-trunk-tip.tar.gz || die 'Tarball Extraction Failed'
+
+cd kitcreator-trunk-tip || die 'Tarball Sanity Failed'
+
+# Prepare source
+./build/pre.sh >/dev/null 2>/dev/null
+
+# Start the tests
+cd build/test || die 'Missing test suite'
+
+if [ ! -x test -o ! -x publish-tests ]; then
+	die 'Missing scripts, aborting.'
 fi
-touch '__AUTO_TESTS_RUNNING__'
 
 # Clean builds
 rm -rf kits
 
 # Run tests
@@ -55,8 +80,10 @@
 # Create nightly symlink
 rm -f "${WEBROOTDIR}/nightly"
 ln -s "${TESTNAME}" "${WEBROOTDIR}/nightly"
 
 # Clean
-rm -f '__AUTO_TESTS_RUNNING__'
+rm -f "${MARKERFILE}"
+cd /
+rm -rf "${TMPWORKDIR}"
 
 exit 0