From d0474e223bb877bb3f33df2befc095e082b918d0 Mon Sep 17 00:00:00 2001
From: Christian Heller <c.heller@plomlompom.de>
Date: Sat, 5 Mar 2016 14:57:49 +0100
Subject: [PATCH] Minor tweaks to enhance cleaning up and responsibility of
 start scripts.

---
 roguelike                    |  2 ++
 start_server_client_union.sh | 16 ++++++++++++----
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/roguelike b/roguelike
index b002721..cad9b70 100755
--- a/roguelike
+++ b/roguelike
@@ -1,7 +1,9 @@
 #!/bin/sh
 
 # Wrapper to the script so that its suppressed server messages get read on exit.
+# and server_run/ get's deleted in any case.
 ./start_server_client_union.sh "$@"
+rm -rf ./server_run/
 
 # For some reason, mere sync won't ensure a log is written out, so wait a while.
 sync
diff --git a/start_server_client_union.sh b/start_server_client_union.sh
index f6c194f..a6fe32a 100755
--- a/start_server_client_union.sh
+++ b/start_server_client_union.sh
@@ -3,6 +3,9 @@
 # Abort the script on error.
 set -e
 
+# Run script in its own process group so SIGINT doesn't kill parent script.
+set -m
+
 # Don't let any log leftovers from before interfere.
 if [ -e ./log ]
 then
@@ -30,7 +33,7 @@ fi
 python3 ./roguelike-server "$@" > log 2>&1 &
 
 # Give server some time to start up and exit on error.
-sleep 0.01
+sleep 0.1
 
 # The client should not start if the server is not running. (If the server was
 # running in the foreground, any error exit of it so far would be caught by "set
@@ -39,14 +42,19 @@ kill -0 $! 2> /dev/null
 
 # Give server some time (max. 10 seconds) to generate its worldstate file.
 i=0
-while [ ! -e server_run/worldstate ] && [ $i -le 1000 ]
+echo -n "Waiting for server to set up world: "
+while [ ! -e server_run/worldstate ] && [ $i -le 100 ]
 do
-    sleep 0.01
+    echo -n '.'
+    sleep 0.1
     i=`expr $i + 1`
 done
+echo
 if [ ! -e server_run/worldstate ]
 then
-    echo "Server failed generating worldstate file within given time limit."
+    kill -9 $!
+    rm -rf server_run
+    echo "Server failed generating worldstate file within time limit."
     false
 fi
 
-- 
2.30.2