summaryrefslogtreecommitdiff
path: root/os/debian/openttd-wrapper
diff options
context:
space:
mode:
Diffstat (limited to 'os/debian/openttd-wrapper')
-rw-r--r--os/debian/openttd-wrapper26
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"