diff --git a/.gitignore b/.gitignore index e43b0f9..1c85792 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .DS_Store +testdata \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 5711bd4..dc5ced3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -40,7 +40,7 @@ COPY docker-assets/create-orders.patch /eressea/ COPY docker-assets/run-eressea.cron.patch /eressea/ RUN DEBIAN_FRONTEND="noninteractive" apt-get install -y \ cmake luarocks libxml2-dev liblua5.2-dev libtolua-dev libncurses5-dev libsqlite3-dev \ - libexpat1-dev && \ + libiniparser-dev libcjson-dev libexpat1-dev && \ cd /eressea && \ git clone -b $eressea_branch https://github.com/eressea/server.git git.eressea && \ cd git.eressea && \ @@ -69,7 +69,7 @@ ENV PATH="${PATH}:/usr/games" RUN apt-get update && \ apt-get install -y liblua5.2-0 libsqlite3-0 libncurses5 libreadline7 libexpat1 python python-pip mutt nano \ - logrotate pwgen zip luarocks fetchmail procmail php7.3 gettext php7.3-sqlite && \ + logrotate pwgen zip luarocks fetchmail procmail php7.3 gettext php7.3-sqlite libiniparser1 libcjson1 && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* && \ pip install bcrypt j2cli && \ @@ -82,6 +82,9 @@ COPY docker-assets/template-config/ /eressea/template-config/ COPY docker-assets/lua-scripts/ /eressea/lua-scripts/ COPY docker-assets/start.sh /eressea/start.sh COPY --from=eressea /eressea/server/ /eressea/server/ +COPY --from=eressea /eressea/git.eressea/build-x86_64-linux-gnu-gcc-Debug/tools/inifile /eressea/server/bin +COPY --from=eressea /eressea/git.eressea/build-x86_64-linux-gnu-gcc-Debug/tools/gethash /eressea/server/bin +COPY --from=eressea /eressea/git.eressea/build-x86_64-linux-gnu-gcc-Debug/tools/atoi36 /eressea/server/bin COPY --from=eressea /eressea/server/etc/report-mail.de.txt /eressea/template-mail/report-mail.de.txt COPY --from=eressea /eressea/server/etc/report-mail.en.txt /eressea/template-mail/report-mail.en.txt COPY --from=eressea /eressea/git.eressea/scripts/tools /eressea/server/scripts/tools @@ -96,3 +99,4 @@ VOLUME ["/data"] WORKDIR /data ENTRYPOINT ["/eressea/start.sh"] CMD ["help"] + diff --git a/Readme.md b/Readme.md index fd87a1a..c92a852 100644 --- a/Readme.md +++ b/Readme.md @@ -116,3 +116,24 @@ docker image pull jacsid/eressea:latest ``` Afterwards start the above described commands as usual. + +## Correction of game data +Sometimes there are bugs in the server program where you have to correct game data manually. +Find next some samples how to archive this. +### Sample session +Set hebs which can be found by units of a region where a specific unit is, to h2. + +``` +sudo docker run -it --rm -v /path/to/my/local/eressea/folder:/data jacsid/eressea bash + +./eressea + +require 'config' +eressea.read_game('18.dat') +u = get_unit('xdyv') +r = u.region +r.herb = "h2" +eressea.write_game('18.dat') + +print(u:show()) +``` \ No newline at end of file diff --git a/docker-assets/run-eressea.cron.patch b/docker-assets/run-eressea.cron.patch index 3470858..0afe519 100644 --- a/docker-assets/run-eressea.cron.patch +++ b/docker-assets/run-eressea.cron.patch @@ -1,20 +1,19 @@ ---- /eressea/server/bin/run-eressea.cron 2020-12-12 15:09:21.000000000 +0000 -+++ /eressea/run-eressea.sh 2020-12-07 21:09:58.000000000 +0000 -@@ -1,7 +1,12 @@ +--- ../git.eressea/process/cron/run-eressea.cron 2021-04-18 14:51:46.000000000 +0200 ++++ run-eressea.cron 2021-04-18 15:26:24.000000000 +0200 +@@ -1,6 +1,11 @@ #!/bin/bash - + +# this script is based on run-eressea.cron +# differences to original +# it is possible to run a turn with empty orders + - eval "$(luarocks path)" GAME=$1 +ENABLE_EMPTY_ORDERS=$2 ( [ "$ENABLED" == "no" ] && exit [ -z "$ERESSEA" ] && ERESSEA="$HOME/eressea" -@@ -27,8 +32,10 @@ - +@@ -28,8 +33,10 @@ + "$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" @@ -24,6 +23,5 @@ + exit 2 + fi fi - + "$BIN/backup-eressea" "$GAME" "$TURN" - \ No newline at end of file diff --git a/docker-assets/start.sh b/docker-assets/start.sh index 5461ae4..9b0bc59 100755 --- a/docker-assets/start.sh +++ b/docker-assets/start.sh @@ -61,7 +61,7 @@ cmd_bash() { exit 2 } - args=$(getopt --name shutdown -o hn -- "$@") + args=$(getopt --name bash -o hn -- "$@") if [ $? != 0 ]; then usage @@ -93,7 +93,7 @@ cmd_startup() { exit 2 } - args=$(getopt --name shutdown -o h -- "$@") + args=$(getopt --name startup -o h -- "$@") if [ $? != 0 ]; then usage @@ -134,6 +134,10 @@ cmd_startup() { ln -sf /data/config/report-mail.de.txt /eressea/server/etc/report-mail.txt cd /data/game-1 + + eval `luarocks path` + export LUA_PATH="$LUA_PATH;/eressea/server/scripts/?.lua;./?/init.lua" + echo "Eressea environment setup complete" } @@ -377,7 +381,7 @@ cmd_map() { exit 2 } - args=$(getopt --name shutdown -o hnw:e:t:s -- "$@") + args=$(getopt --name map -o hnw:e:t:s -- "$@") if [ $? != 0 ]; then usage @@ -433,7 +437,7 @@ cmd_addpwd() { exit 2 } - args=$(getopt --name shutdown -o hf -- "$@") + args=$(getopt --name addpwd -o hf -- "$@") if [ $? != 0 ]; then usage @@ -485,7 +489,7 @@ cmd_mail() { exit 2 } - args=$(getopt --name shutdown -o hcf -- "$@") + args=$(getopt --name mail -o hcf -- "$@") if [ $? != 0 ]; then usage @@ -532,7 +536,7 @@ cmd_run() { exit 2 } - args=$(getopt --name shutdown -o h -- "$@") + args=$(getopt --name run -o h -- "$@") if [ $? != 0 ]; then usage diff --git a/docker-assets/template-config/procmailrc b/docker-assets/template-config/procmailrc index d502c85..fcf2871 100644 --- a/docker-assets/template-config/procmailrc +++ b/docker-assets/template-config/procmailrc @@ -15,11 +15,17 @@ ERESSEA=/data :0:server.lock * ^Subject:.*{{game.mailcmd}} BEFEHLE +| grep -v '>From' | /data/server/bin/orders-accept 1 de + +:0:server.lock * ^Subject:.*{{game.mailcmd}} 1 BEFEHLE | grep -v '>From' | /data/server/bin/orders-accept 1 de :0:server.lock * ^Subject:.*{{game.mailcmd}} ORDERS +| grep -v '>From' | /data/server/bin/orders-accept 1 en + +:0:server.lock * ^Subject:.*{{game.mailcmd}} 1 ORDERS | grep -v '>From' | /data/server/bin/orders-accept 1 en