summarylogtreecommitdiffstats
path: root/zelda-classic.sh
diff options
context:
space:
mode:
Diffstat (limited to 'zelda-classic.sh')
-rwxr-xr-x[-rw-r--r--]zelda-classic.sh47
1 files changed, 33 insertions, 14 deletions
diff --git a/zelda-classic.sh b/zelda-classic.sh
index b16e0dd5382b..65e1cf6d1696 100644..100755
--- a/zelda-classic.sh
+++ b/zelda-classic.sh
@@ -1,33 +1,52 @@
-#!/bin/sh
+#!/bin/bash
#
-# Zelda Classic launcher
+# Zelda Classic launcher - (c) carstene1ns 2013
#
# Does some magic juggling with the data files
-mkdir -p $HOME/.zelda-classic
+# Changelog:
+# * 11-2016: Added XDG support
-if [ ! -f $HOME/.zelda-classic/1st.qst ]; then
+jail_dir=${XDG_CONFIG_HOME:-$HOME/.config}/zelda-classic
- ln -s /opt/zelda-classic/{*.{qst,dat},zelda.nsf,samplesoundset,{zelda,zlaunch,zquest}-l} $HOME/.zelda-classic/
- ln -s /usr/share/doc/zelda-classic/zquest.txt $HOME/.zelda-classic/
+# migrate files from old location
+jail_old=$HOME/.zelda-classic
+
+if [ ! -e $jail_dir ]; then
+ mkdir -p $jail_dir
+
+ if [ -e $jail_old ]; then
+ for f in $jail_old/{*.{qst,dat,nsf,txt},samplesoundset,{zelda,zlaunch,zquest}-l}; do
+ [ -L $f ] && rm $f
+ done
+
+ mv $jail_old/{ag.cfg,allegro.log,zc.{icn,lck,sav}} $jail_dir
+ fi
fi
-cd $HOME/.zelda-classic
+# symlink files from installation directory
+for f in /opt/zelda-classic/{*.{qst,dat,nsf,so},samplesoundset,z*-l} \
+ /usr/share/doc/zelda-classic/zquest.txt; do
+ [ ! -e $jail_dir/${f##*/} ] && ln -s $f $jail_dir
+done
+
+# change to directory and launch
+cd $jail_dir
case "${0##*/}" in
zelda-classic)
- ./zelda-l "$@"
- ;;
+ exec ./zelda-l "$@"
+ ;;
zelda-classic-zlaunch)
- ./zlaunch-l "$@"
- ;;
+ exec ./zlaunch-l "$@"
+ ;;
zelda-classic-zquest)
- ./zquest-l "$@"
- ;;
+ exec ./zquest-l "$@"
+ ;;
*)
echo "Something is wrong with your Zelda Classic installation."
- ;;
+ ;;
esac
cd - &>/dev/null