29 lines
		
	
	
		
			863 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			863 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/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"
 | 
