forked from github/server
62 lines
1.4 KiB
Bash
Executable file
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
|
|
|