server/process/cron/run-eressea.cron

62 lines
1.4 KiB
Bash
Executable file

#!/bin/bash
GAME=$1
(
[ "$ENABLED" != "yes" ] && exit
[ -z ${ERESSEA} ] && ERESSEA=$HOME/eressea
export ERESSEA
BIN=$ERESSEA/server/bin
TURN=$(cat $ERESSEA/game-$GAME/turn)
if [ ! -e $ERESSEA/game-$GAME/data/$TURN.dat ]; then
echo "data file $TURN is missing, cannot run turn for game $GAME"
exit 1
fi
REPORTS=$ERESSEA/game-$GAME/reports
if [ -d $REPORTS ]; then
rm -rf $REPORTS
fi
mkdir $REPORTS
cd $ERESSEA/game-$GAME
# wait for the queue lock to go away
maxt=5
to=5
while [ -e orders.queue.lock ] ; do
echo "waiting for orders to finish processing."
sleep $to
let to=$to+$to
let mast=$maxt-1
[ $maxt -lt 0 ] && break
done
if [ -d test ]; then
touch test/execute.lock
fi
$BIN/create-orders $GAME $TURN
$BIN/backup-eressea $GAME $TURN
rm -f execute.lock
$BIN/run-turn $GAME $TURN
touch execute.lock
if [ ! -s $ERESSEA/game-$GAME/orders.$TURN ]; then
echo "server did not create orders for turn $TURN in game $GAME"
exit 2
fi
if [ ! -s $REPORTS/reports.txt ]; then
echo "server did not create reports.txt in game $GAME"
exit 4
fi
$BIN/backup-eressea $GAME $TURN
let TURN=$TURN+1
if [ ! -s $ERESSEA/game-$GAME/data/$TURN.dat ]; then
echo "server did not create data for turn $TURN in game $GAME"
exit 3
fi
echo "sending reports for game $GAME, turn $TURN"
$BIN/compress.sh $GAME $TURN
$BIN/sendreports.sh $GAME
$BIN/backup-eressea $GAME $TURN
rm -f test/execute.lock
) | tee -a $HOME/log/eressea.cron.log