X-Git-Url: https://plomlompom.com/repos/?p=plomrogue;a=blobdiff_plain;f=roguelike;h=b997a9f4b138cdae03fbda0e72474c70a8ff45bc;hp=ae3fd75d9d69d09130321b31fb4f1026bb8f62fc;hb=HEAD;hpb=f901f7a2fb8db4ec7b1a2497d79677de06dea0a5 diff --git a/roguelike b/roguelike index ae3fd75..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 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 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/out ] +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 outfile within given time limit." - false + cat log fi - -# Only start the interface when everything else went well. -kill -0 $! 2> /dev/null -./roguelike-client