#!/bin/bash CLIENT=$1 LOGDIR=/home/build/logs LOGFILE=/var/log/builder.log STATEDIR=/home/build/state cd in while true; do FILE=$(ls -1 *.q 2>/dev/null| head -1) if [ "$FILE"x = ""x ]; then # If we didn't find a job echo NOPACKAGE exit 1 fi NUM=$(echo $FILE | cut -d. -f1) mv $NUM.q $NUM.proc if [ $? -ne 0 ]; then # we clashed echo NOPACKAGE exit 1 fi PKG_VER_ARCH=$(cat $NUM.proc) DATE=$(date) if [ -f ${LOGDIR}/${ARCH}/PASS/${PKG_VER_ARCH}.log ] || [ -f ${LOGDIR}/${ARCH}/FAIL/${PKG_VER_ARCH}.log ]; then for file in ${LOGDIR}/${ARCH}/{PASS,FAIL}/${PKG_VER_ARCH}.log; do # Ignore and try again if [ -f $file ]; then echo "$DATE: Ignoring package $NUM: $PKG_VER_ARCH, already have logfile $file" >> $LOGFILE fi done continue fi # else echo "$DATE: Queued package $NUM: $PKG_VER_ARCH on $CLIENT" >> $LOGFILE echo "$DATE: Queued package $NUM: $PKG_VER_ARCH on $CLIENT" > $STATEDIR/$NUM.running echo "$NUM $PKG_VER_ARCH" exit 0 done exit 0