summaryrefslogtreecommitdiff
path: root/os/debian/openttd-wrapper
blob: 6f85f00b0601526780169b320264a0a3664f51a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/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. Use the deprecated -t option, so this
# works on the old mktemp from the mktemp package (which has been
# replaced by the version from the coreutils package).
TMPFILE=`mktemp -t 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"