slackbuilds_ponce/games/zork/zorkwrapper.sh

41 lines
1.2 KiB
Bash
Raw Normal View History

#!/bin/bash
# shell script wrapper for zork games. Finds an interpreter based
# on what's installed, finds the zcode file based on $0.
# This script is only meant to work with the files installed by
# zork.SlackBuild, so it's dumber than a general-purpose script
# would be. In particular, it chokes on filenames with spaces
# in them (but there aren't any installed by the SlackBuild)
ZCODEPATH=/usr/share/zcode
# This ugly construct is needed in case zork1.z3 and zork1.z5 both
# exist (we only want the .z? glob to return one filename)
ZFILE=$( echo "$ZCODEPATH/$( echo "$0" | sed 's,.*/,,' )".z? | cut -d' ' -f1 )
# If the wrapper is called directly, default to Zork I
if [ ! -e $ZFILE ]; then
ZFILE=$ZCODEPATH/zork1.z3
fi
if which fizmo &>/dev/null; then
exec fizmo $ZFILE
elif which frotz &>/dev/null; then
exec frotz $ZFILE
elif which zoom &>/dev/null; then
if [ "$DISPLAY" = "" ]; then
echo "$0: can't run zoom, X isn't running. Install fizmo or frotz, or else startx first"
exit 1
fi
# zoom is an X app, if we were called from a .desktop file,
# need to get rid of the terminal it started for us.
nohup zoom $ZFILE &>/dev/null &
sleep 1
disown
else
echo "$0: can't find an interpreter. Install one or more of fizmo, frotz, zoom."
exit 1
fi