home · contact · privacy
Fix buggy healthy_addch().
[plomrogue] / roguelike
index dadab3cb2c776725c4b496a9e623115cb08d869a..b997a9f4b138cdae03fbda0e72474c70a8ff45bc 100755 (executable)
--- a/roguelike
+++ b/roguelike
@@ -1,27 +1,22 @@
 #!/bin/sh
 
-# Abort the script on error.
-set -e
+# Wrapper to the script so that its suppressed server messages get read on exit.
+./start_server_client_union.sh "$@"
 
-# Use the shell script's arguments to the server's arguments.
-./roguelike-server $@ &
-
-# Give server some time to start up and exit on error.
-sleep 0.01
-
-# The client should not start if the server is not running. (If the server was
-# running in the foreround, any error exit of it so far would be caught by "set
-# -e" above. But "set -e" is blind to error codes generated in the background.)
-kill -0 $! 2> /dev/null
-
-# Give server some time (max. 10 seconds) to generate its out file.
+# Give server up to ten seconds to wind down properly.
 i=0
-while [ ! -e server/out ] && [ $i -le 10000 ]
+while [ -e ./server_run/in ] && [ $i -le 100 ]
 do
-    sleep 0.01
+    echo 'QUIT' >> server_run/in
+    sleep 0.1
     i=`expr $i + 1`
 done
-kill -0 $! 2> /dev/null
+rm -rf ./server_run/
 
-# Only start the interface when everything else went well.
-./roguelike-client
+# For some reason, mere sync won't ensure a log is written out, so wait a while.
+sync
+sleep 0.5
+if [ -e ./log ]
+then
+    cat log
+fi