#!/bin/sh # # pdispatch [ ...] # # Choose a random machine from ${buildroot}/ulist and dispatch the # job to it via the ptimeout script. pb=/var/portbuild arch=$1 shift . ${pb}/${arch}/portbuild.conf . ${pb}/scripts/buildenv # wait 8 hours maximum timeout=28800 branch=$1 command=$2 shift 2 buildenv ${pb} ${arch} ${branch} # ssh -x doesn't work on some machines unset DISPLAY pkgname=$(basename $1 ${PKGSUFFIX}) if grep -qxF $pkgname ${pb}/${arch}/${branch}/duds; then echo "skipping $pkgname" exit 1 fi args=${1+"$@"} mach=$(cat ${pb}/${arch}/ulist) num=$(echo $(echo $mach | wc -w)) set $mach shift $(echo "$$ $num" | awk '{srand($1); print(int(rand()*$2))}') flags="" if [ "x$NOCLEAN" != "x" ]; then flags="${flags} -noclean" fi if [ "x$NO_RESTRICTED" != "x" ]; then flags="${flags} -norestr" fi if [ "x$PLISTCHECK" != "x" ]; then flags="${flags} -plistcheck" fi if [ "x$NODUMMY" != "x" ]; then flags="${flags} -nodummy" fi echo "dispatching: ssh -a -t -n root@$1 ${command} ${arch} ${branch} $flags $args at $(date)" ${pb}/scripts/ptimeout.host $timeout ssh -a -t -n root@$1 ${command} ${arch} ${branch} ${flags} $args