diff options
Diffstat (limited to 'os/debian/openttd-wrapper')
-rw-r--r-- | os/debian/openttd-wrapper | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/os/debian/openttd-wrapper b/os/debian/openttd-wrapper new file mode 100644 index 000000000..3c35f7d36 --- /dev/null +++ b/os/debian/openttd-wrapper @@ -0,0 +1,26 @@ +#!/bin/sh +# This is a wrapper script that checks openttd's exit status and +# displays its stderr output + +# Get a file to capture stderr to +TMPFILE=`mktemp --tmpdir openttd.errout.XXXXXXXXX` + +if [ ! -w "$TMPFILE" ]; then + xmessage "Could not create temporary file for error messages. Not starting OpenTTD." + exit 1; +fi + +# Capture stderr +openttd "$@" 2> "$TMPFILE" +ERRCODE=$? +if [ "$ERRCODE" -ne 0 ]; then + CODEMSG="OpenTTD returned with error code $ERRCODE." + if [ -s "$TMPFILE" ]; then + MESSAGE="$CODEMSG The following error messages were produced:\n\n" + printf "$MESSAGE" | cat - "$TMPFILE" | fold -s | xmessage -file - + else + xmessage "$CODEMSG No error messages were produced." + fi +fi + +rm -f "$TMPFILE" |