blob: 2609d5334c03a7f07cadf3b32e627a149b0142e8 [file] [log] [blame]
#!/bin/sh
echo "Using ssh-nightly-slave settings from $HOME/.corpus"
. $HOME/.corpus
host=`echo "$1" | perl -ne 's/:-j(\S+)$//;print'`
opts=`echo "$1" | perl -ne 's/:-j(\S+)$// and print "-j $1"'`
set -x
set -e
tar=tar
[ -x /usr/sfw/bin/gtar ] && tar=/usr/sfw/bin/gtar
cd $tree
$tar cfz $tmp/tf \
--exclude="*.log" \
--exclude=".svn" \
--exclude="tmp" \
.
[ "$clienttree" = "" ] && clienttree=tree
# a rather rough-and-ready way to ensure any hangover mass-checks
# from the previous set are killed, before we start these ones;
# ||true ensures we carry on even if this fails. ". envs" allows
# host-specific aliases/paths to workaround platform issues
ssh $host . envs \; \
pkill -15 -f perl || true
ssh $host . envs \; \
pkill -9 -f perl || true
ssh $host . envs \; \
rm -rf $clienttree/code \; \
mkdir -p $clienttree/code \; \
cd $clienttree/code \; \
tar xfz - < $tmp/tf
# source $HOME/envs to get whatever $PATH we need to use the correct perl.
# (some hosts need to use /usr/local/bin/perl or $HOME/perl588/bin/perl
# instead of /usr/bin/perl). Host admins: if your host needs a custom
# perl, here's where to prepend that to the $PATH!
# rebuild to compile the blib modules for this platform.
ssh $host . envs \; \
cd $clienttree/code \; \
perl Makefile.PL \; \
make clean \; \
perl Makefile.PL \; \
make < /dev/null > $tmp/remote_build.$host.log
# use a cs_cache in $clienttree/cs_cache -- this is not removed
# with the above "rm -rf" command
ssh $host . envs \; \
cd $clienttree/code/masses \; \
TZ=UTC perl mass-check \
--cs_ssl --cs_verbose --cs_schedule_cache --cs_cachedir=../../cs_cache \
--reuse $opts \
--client $serverhost &