home · contact · privacy
Server, plugin: Refactor ai (plugin hooks).
[plomrogue] / roguelike
index 8ca2871a42c998aa1c0258c8474e4027cedc9549..b00272187288eed4be40d1bb8df26872623ae831 100755 (executable)
--- a/roguelike
+++ b/roguelike
@@ -1,32 +1,12 @@
 #!/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 shell script's arguments for server and pipe server output to log file.
-./roguelike-server "$@" > log 2>&1 &
-
-# 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 foreground, 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 worldstate file.
-i=0
-while [ ! -e server/worldstate ] && [ $i -le 1000 ]
-do
-    sleep 0.01
-    i=`expr $i + 1`
-done
-if [ ! -e server/worldstate ]
+# 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
-    echo "Server failed generating worldstate file within given time limit."
-    false
+    cat log
 fi
-
-# Only start the interface when everything else went well.
-kill -0 $! 2> /dev/null
-./roguelike-client