server/process/cron/run-eressea.cron

62 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
GAME=$1
(
[ "$ENABLED" == "no" ] && exit
[ -z "$ERESSEA" ] && ERESSEA="$HOME/eressea"
export ERESSEA
eval "$(luarocks path)"
export LUA_PATH="${ERESSEA}/server/scripts/?.lua;$LUA_PATH"
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" || exit
if [ -d test ]; then
touch test/execute.lock
fi
"$BIN/create-orders" "$GAME" "$TURN"
if [ ! -s "$ERESSEA/game-$GAME/orders.$TURN" ]; then
echo "server did not create orders for turn $TURN in game $GAME"
exit 2
fi
"$BIN/backup-eressea" "$GAME" "$TURN"
rm -f execute.lock
"$BIN/run-turn" "$GAME" "$TURN"
touch execute.lock
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
if [ ! -f "express-$TURN.txt" ]; then
if [ -f express.txt ]; then
mv express.txt "express-$TURN.txt"
fi
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"