summaryrefslogtreecommitdiffstats
path: root/games/zork/zorkwrapper.sh
diff options
context:
space:
mode:
Diffstat (limited to 'games/zork/zorkwrapper.sh')
-rw-r--r--games/zork/zorkwrapper.sh40
1 files changed, 40 insertions, 0 deletions
diff --git a/games/zork/zorkwrapper.sh b/games/zork/zorkwrapper.sh
new file mode 100644
index 0000000000..507091bbf7
--- /dev/null
+++ b/games/zork/zorkwrapper.sh
@@ -0,0 +1,40 @@
+#!/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