X-Git-Url: https://plomlompom.com/repos/?p=plomrogue;a=blobdiff_plain;f=roguelike;h=b997a9f4b138cdae03fbda0e72474c70a8ff45bc;hp=3ea498d6478814146481e50f33bd3cc7428673d9;hb=HEAD;hpb=d12efb0addf420adc045cfb96647dff6241310ee diff --git a/roguelike b/roguelike index 3ea498d..b997a9f 100755 --- a/roguelike +++ b/roguelike @@ -1,32 +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 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. +# Give server up to ten seconds to wind down properly. i=0 -while [ ! -e server/worldstate ] && [ $i -le 1000 ] +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 -if [ ! -e server/worldstate ] +rm -rf ./server_run/ + +# 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