-#!/bin/bash
+#!/bin/sh
# this is the main build script for build.samba.org
# it gets run on all the build boxes via cron
# any errors get put in build.log
# we used a fixed path that is a superset of the required paths.
-export PATH=~/bin:/usr/local/bin:/usr/bin:/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/bsd
+build_test_path=.:$HOME/bin:/usr/local/bin:/usr/bin:/bin:/opt/SUNWspro/bin:/usr/pkg/bin:/usr/pkg/sbin:/usr/ccs/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/bsd
+PATH=$build_test_path
+export PATH
+CFLAGS=""
+export CFLAGS
+
+build_test_id='$Id$'
# go to our main directory
-cd ~/build_farm || exit 1
+cd $HOME/build_farm || exit 1
(
echo
date
+ #
+ # allow admins to configure things like
+ # PATH, RSYNC_PROXY, ...
+ #
+ if [ -f build_test.settings.local ]; then
+ build_test_settings_local_file="build_test.settings.local"
+ . $build_test_settings_local_file
+ fi
+
# we only want the short name of the host - use cut for portability
host=`hostname | cut -d. -f1`
chmod 600 .password
# grab the latest versions of the scripts
- rsync --timeout=200 -q -az samba.org::build_farm/*.fns .
+ rsync --delete --include='*.fns' --exclude='*' --timeout=200 -q -az build.samba.org::build_farm/ .
# load general functions
. build_test.fns
+ #
+ # allow admins to overload things like send_logs()
+ # if it's required to have secret data in it,
+ # that can't be in a per host .fns file on
+ # the build-farm svn tree
+ #
+ if [ -f build_test.fns.local ]; then
+ build_test_fns_local_file="build_test.fns.local"
+ . $build_test_fns_local_file
+ fi
+
if [ -f $host.fns ]; then
# load host specific functions
- . $host.fns
+ build_test_used_fns_file="$host.fns"
else
- . generic.fns
+ build_test_used_fns_file="generic.fns"
fi
+ . $build_test_used_fns_file
) >> build.log 2>&1