home · contact · privacy
Server: Internally, rename "map object" stuff to "thing" stuff.
[plomrogue] / roguelike
1 #!/bin/sh
2
3 # Abort the script on error.
4 set -e
5
6 # Use shell script's arguments for server and pipe server output to log file.
7 ./roguelike-server "$@" > log 2>&1 &
8
9 # Give server some time to start up and exit on error.
10 sleep 0.01
11
12 # The client should not start if the server is not running. (If the server was
13 # running in the foreground, any error exit of it so far would be caught by "set
14 # -e" above. But "set -e" is blind to error codes generated in the background.)
15 kill -0 $! 2> /dev/null
16
17 # Give server some time (max. 10 seconds) to generate its worldstate file.
18 i=0
19 while [ ! -e server/worldstate ] && [ $i -le 1000 ]
20 do
21     sleep 0.01
22     i=`expr $i + 1`
23 done
24 if [ ! -e server/worldstate ]
25 then
26     echo "Server failed generating worldstate file within given time limit."
27     false
28 fi
29
30 # Only start the interface when everything else went well.
31 kill -0 $! 2> /dev/null
32 ./roguelike-client