Skip to content

Commit

Permalink
Merge branch 'master' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
ennorehling committed Apr 3, 2024
2 parents 6e94117 + 96bbeef commit 33303ad
Show file tree
Hide file tree
Showing 17 changed files with 280 additions and 108 deletions.
3 changes: 2 additions & 1 deletion process/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
install(PROGRAMS create-orders backup-eressea run-turn send-zip-report
install(PROGRAMS create-orders backup-box backup-onedrive
run-turn send-zip-report
send-bz2-report compress.py compress.sh epasswd.py
accept-orders.py getemail.py checkpasswd.py
sendreport.sh sendreports.sh orders-accept DESTINATION bin)
Expand Down
File renamed without changes.
44 changes: 44 additions & 0 deletions process/backup-onedrive
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#!/bin/bash
DIR=$(dirname $0)
if [ -z "$ERESSEA" ] ; then
ERESSEA="$HOME/eressea"
echo "The ERESSEA environment variable is not set. Assuming $ERESSEA."
fi
GAME=$1

upload() {
onedrive-cli cp "./$1" "Eressea/game-$GAME"
}

if [ ! -d "$ERESSEA/game-$GAME" ]; then
echo "No such game: game-$GAME."
exit 1
fi
cd "$ERESSEA/game-$GAME" || exit
TURN=$2
if [ -z "$TURN" ]; then
TURN=$(cat turn)
fi
if [ ! -e "data/$TURN.dat" ]; then
echo "No data for turn $TURN in game $GAME."
exit 2
fi
if [ ! -d backup ] ; then
echo "creating missing backup directory for game $GAME."
mkdir -p "$HOME/backup/eressea/game-$GAME"
ln -sf "$HOME/backup/eressea/game-$GAME" backup
fi

files=("data/$TURN.dat" parteien.full parteien)
if [ -e "orders.$TURN" ]; then
files+=("orders.$TURN")
fi
echo "backup turn $TURN, game $GAME, files: ${files[*]}"
tar cjf "backup/$TURN.tar.bz2" "${files[@]}"
if [ -e reports/reports.txt ] ; then
upload "backup/$TURN.tar.bz2"
echo "backup reports $TURN, game $GAME"
tar cjf "backup/$TURN-reports.tar.bz2" reports eressea.db
upload "backup/$TURN-reports.tar.bz2"
fi

15 changes: 11 additions & 4 deletions process/cron/run-eressea.cron
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@ GAME=$1
[ "$ENABLED" == "no" ] && exit
[ -z "$ERESSEA" ] && ERESSEA="$HOME/eressea"

backup()
{
if [ -x "$BIN/backup-eressea" ] ; then
"$BIN/backup-eressea" "$1" "$2"
fi
}

export ERESSEA
eval "$(luarocks path)"
export LUA_PATH="${ERESSEA}/server/scripts/?.lua;$LUA_PATH"
Expand Down Expand Up @@ -37,12 +44,12 @@ if [ ! -s "orders.$TURN" ]; then
exit 2
fi

"$BIN/backup-eressea" "$GAME" "$TURN"
backup "$GAME" "$TURN"
rm -f execute.lock
"$BIN/run-turn" "$GAME" "$TURN"
touch execute.lock

let NEXTTURN=$TURN+1
(( NEXTTURN=TURN+1 )) || true
if [ ! -e "$DATA/$NEXTTURN.dat" ]; then
echo "server did not create data file $NEXTTURN.dat"
exit 5
Expand All @@ -51,7 +58,7 @@ if [ ! -s "$REPORTS/reports.txt" ]; then
echo "server did not create reports.txt in game $GAME"
exit 4
fi
"$BIN/backup-eressea" "$GAME" "$TURN"
backup "$GAME" "$TURN"
TURN=$NEXTTURN
if [ ! -s "$ERESSEA/game-$GAME/data/$TURN.dat" ]; then
echo "server did not create data for turn $TURN in game $GAME"
Expand All @@ -65,7 +72,7 @@ fi
echo "sending reports for game $GAME, turn $TURN"
"$BIN/compress.sh" "$GAME" "$TURN"
"$BIN/sendreports.sh" "$GAME"
"$BIN/backup-eressea" "$GAME" "$TURN"
backup "$GAME" "$TURN"
rm -f test/execute.lock
) | tee -a "$HOME/log/eressea.cron.log"

2 changes: 1 addition & 1 deletion s/git-reset
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#/bin/sh
#!/bin/sh
if [ ! -d .git ] ; then
echo "please run this script from the repository's top-level directory"
exit 1
Expand Down
22 changes: 16 additions & 6 deletions s/install
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@
FORCE=0
while getopts f o; do
case "${o}" in
f) usage ; FORCE=yes ;;
f) FORCE=yes
;;
*) usage
;;
esac
done

Expand All @@ -14,13 +17,20 @@ if [ "$FORCE" != "yes" ] ; then
exit
fi
fi
[ -z "$CC" ] && [ ! -z `which clang` ] && CC="clang"
[ -z "$CC" ] && [ ! -z `which gcc` ] && CC="gcc"
[ -z "$CC" ] && [ ! -z `which tcc` ] && CC="tcc"
[ -z "$CC" ] && [ ! -z `which cc` ] && CC="cc"
[ -z "$CC" ] && [ -n "$(which clang)" ] && CC="clang"
[ -z "$CC" ] && [ -n "$(which gcc)" ] && CC="gcc"
[ -z "$CC" ] && [ -n "$(which tcc)" ] && CC="tcc"
[ -z "$CC" ] && [ -n "$(which cc)" ] && CC="cc"
BIN_DIR="build"

ROOT=$(git rev-parse --show-toplevel)
PREFIX=$(dirname "$ROOT")/server
cd "$ROOT"
cd "$ROOT" || exit
cmake --install "$BIN_DIR" --prefix "$PREFIX"
if [ ! -e "$PREFIX/bin/backup-eressea" ] ; then
if [ -e ~/.onedrive-cli-token ] ; then
cd "$PREFIX" || exit
ln -sf backup-onedrive backup-eressea
cd - || exit
fi
fi
96 changes: 48 additions & 48 deletions s/preview
Original file line number Diff line number Diff line change
Expand Up @@ -14,44 +14,44 @@ exit 1
}

function abort() {
echo $1
[ -z $2 ] && exit -1
exit $2 # otherwise
echo "$1"
[ -z "$2" ] && exit 255
exit "$2" # otherwise
}

function build() {
assert_dir $SOURCE
cd $SOURCE
assert_dir "$SOURCE"
cd "$SOURCE" || exit
rm -rf tolua
git fetch
[ -z $1 ] || git checkout $1
[ -z "$1" ] || git checkout "$1"
git pull --rebase -q || abort "failed to update source. do you have local changes?"
git submodule update
s/cmake-init
s/build > /dev/null || abort "build failed."
}

function assert_file() {
[ -e $1 ] || abort "missing file: $1"
[ -e "$1" ] || abort "missing file: $1"
}

function assert_files() {
while [ ! -z $1 ] ; do
assert_file $1
while [ -n "$1" ] ; do
assert_file "$1"
shift
done
}

function assert_dir() {
[ -d $1 ] || abort "missing directory: $1"
[ -d "$1" ] || abort "missing directory: $1"
}

function setup() {
assert_dir $SOURCE
assert_dir $LIVE
mkdir -p $TESTROOT
assert_dir $TESTROOT
cd $TESTROOT
assert_dir "$SOURCE"
assert_dir "$LIVE"
mkdir -p "$TESTROOT"
assert_dir "$TESTROOT"
cd "$TESTROOT" || exit

cat >| eressea.ini <<HEREDOC
[lua]
Expand All @@ -64,36 +64,36 @@ HEREDOC

function run() {
echo "testing turn $turn of game $game"
assert_dir $TESTROOT
cd $TESTROOT
assert_dir "$TESTROOT"
cd "$TESTROOT" || exit
[ ! -e execute.lock ] || abort "lockfile prevents running game $game"
[ -d data ] || mkdir data
assert_dir data
assert_files $LIVE/orders.$turn $LIVE/data/$turn.dat
ln -f $LIVE/orders.$turn
ln -f $LIVE/data/$turn.dat data/
assert_files "$LIVE/orders.$turn" "$LIVE/data/$turn.dat"
ln -f "$LIVE/orders.$turn" .
ln -f "$LIVE/data/$turn.dat" data/
rm -rf reports
mkdir -p reports

SUPP="$SOURCE/share/debian-7_8.supp"
SERVER="$SOURCE/build/eressea/eressea"
VALGRIND=$(which valgrind)
if [ ! -z $VALGRIND ]; then
VALGRIND="$(which valgrind)"
if [ -n "$VALGRIND" ]; then
SERVER="$VALGRIND --quiet --suppressions=$SUPP --error-exitcode=1 --leak-check=no $SERVER"
fi
$SERVER -v$verbose -t$turn $SOURCE/scripts/run-turn.lua
let turn=$turn+1
[ -e data/$turn.dat ] || abort "no data file created"
$SERVER -v "$verbose" -t "$turn" "$SOURCE/scripts/run-turn.lua"
(( turn=turn+1 ))
[ -e "data/$turn.dat" ] || abort "no data file created"
}

function send() {
zip="$turn-$1.zip"
zip -q -u $zip $turn-$1.?r
zip -q -u "$zip" "$turn-$1".?r
email=$(grep "faction=$1:" reports.txt | cut -d: -f2 | sed 's/email=//')
echo "sending reports to $1 / $email"
info=/dev/null
[ -e ../email.txt ] && info=../email.txt
cat $info | mutt -s "Testauswertung Spiel $game Partei $1" -a $zip -- $email
mutt -s "Testauswertung Spiel $game Partei $1" -a "$zip" -- "$email" < "$info"
}

game=0
Expand Down Expand Up @@ -121,47 +121,47 @@ while getopts :g:t:f:v: o; do
done
shift $((OPTIND-1))

[ -z $ERESSEA ] && ERESSEA=$HOME/eressea
[ -d $ERESSEA ] || abort "invalid or missing env variable ERESSEA ($ERESSEA)"
[ -z $1 ] && usage
[ -z $SOURCE ] && SOURCE=$ERESSEA/git
[ -d $SOURCE ] || abort "missing source directory: $SOURCE"
[ -d LIVE ] || LIVE=$ERESSEA/game-$game
[ -d TESTROOT ] || TESTROOT=$LIVE/test
[ -z "$ERESSEA" ] && ERESSEA="$HOME/eressea"
[ -d "$ERESSEA" ] || abort "invalid or missing env variable ERESSEA ($ERESSEA)"
[ -z "$1" ] && usage
[ -z "$SOURCE" ] && SOURCE="$ERESSEA/git"
[ -d "$SOURCE" ] || abort "missing source directory: $SOURCE"
LIVE="$ERESSEA/game-$game"
TESTROOT="$LIVE/test"

while [ ! -z $1 ]; do
while [ -n "$1" ]; do
case "$1" in
"build")
shift
build $*
build "$@"
;;
"setup")
setup
;;
"run")
if [ $turn -eq 0 ]; then
[ -f $LIVE/turn ] || abort "missing turn file in $LIVE, and no turn specified"
let turn=$(cat $LIVE/turn)-1
if [ "$turn" -eq 0 ]; then
[ -f "$LIVE/turn" ] || abort "missing turn file in $LIVE, and no turn specified"
(( turn=$(cat "$LIVE/turn")-1 ))
fi
run
;;
"send")
shift
sent=0
cd $TESTROOT/reports
if [ $turn -eq 0 ]; then
[ -f $TESTROOT/turn ] || abort "missing turn file, and no turn specified"
let turn=$(cat $TESTROOT/turn)
cd "$TESTROOT/reports" || exit
if [ "$turn" -eq 0 ]; then
[ -f "$TESTROOT/turn" ] || abort "missing turn file, and no turn specified"
(( turn=$(cat "$TESTROOT/turn") ))
fi
[ -f reports.txt ] || abort "missing reports.txt for game $game"
for faction in $* ; do
send $faction
for faction in "$@" ; do
send "$faction"
sent=1
done
if [ $sent -eq 0 ]; then
if [ -e ../$factions ]; then
for faction in $(grep -v -E '^#' ../$factions) ; do
send $faction
if [ -e "../$factions" ]; then
for faction in $(grep -v -E '^#' "../$factions") ; do
send "$faction"
done
fi
fi
Expand Down
8 changes: 4 additions & 4 deletions s/runtests
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
#!/bin/bash
set -e

eval $(luarocks path)
eval "$(luarocks path)"
ROOT=$(git rev-parse --show-toplevel)
export LUA_PATH="$ROOT/scripts/?.lua;$LUA_PATH"
BUILD=$ROOT/build
BUILD="$ROOT/build"

UNIT_TESTS="$BUILD/eressea/test_eressea"
RUN_TESTS="$BUILD/eressea/eressea"
Expand All @@ -14,11 +14,11 @@ UNIT_TESTS="valgrind --quiet --suppressions=$SUPP --error-exitcode=1 --leak-chec
RUN_TESTS="valgrind --quiet --suppressions=$SUPP --error-exitcode=1 --leak-check=no $RUN_TESTS"
fi

cd $ROOT/tests
cd "$ROOT/tests" || exit
$UNIT_TESTS
$RUN_TESTS -v1 ../scripts/run-tests.lua
$RUN_TESTS -v1 ../scripts/run-tests-e2.lua
$RUN_TESTS -v1 ../scripts/run-tests-e3.lua
$RUN_TESTS --version

cd $OLDWPD
cd "$OLDWPD" || exit
Loading

0 comments on commit 33303ad

Please sign in to comment.