server/process/cron/run-eressea
Enno Rehling e5d53769df lock files to prevent accidents.
preview will only run if the turn worked out.
cannot accidentally run in the game directory.
2014-12-11 12:19:31 +01:00

39 lines
1,012 B
Bash
Executable file

#!/bin/bash
GAME=$1
BIN=$HOME/bin
export ERESSEA=$HOME/eressea
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
$BIN/backup-eressea $GAME
if [ -d test ]; then
touch test/execute.lock
fi
rm -f execute.lock
$BIN/run-turn $GAME
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
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
if [ ! -s $REPORTS/reports.txt ]; then
echo "server did not create reports.txt for turn $TURN in game $GAME"
exit 4
fi
$BIN/compress.sh $GAME $TURN
$BIN/sendreports.sh $GAME
$BIN/backup-eressea $GAME
[ $GAME -lt 4 ] && $BIN/send-summary $GAME
rm -f test/execute.lock