53 lines
1.1 KiB
Bash
Executable File
53 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
printerr() {
|
|
echo "ERROR: $*" >&2
|
|
}
|
|
|
|
TARGET_FILE=$0
|
|
|
|
cd "$(dirname "$TARGET_FILE")" || {
|
|
printerr "Could not change directory to '$TARGET_FILE'"
|
|
exit 1
|
|
}
|
|
TARGET_FILE="$(basename "$TARGET_FILE")"
|
|
|
|
# Iterate down a (possible) chain of symlinks.
|
|
while [ -L "$TARGET_FILE" ]
|
|
do
|
|
TARGET_FILE="$(readlink "$TARGET_FILE")"
|
|
cd "$(dirname "$TARGET_FILE")" || {
|
|
printerr "Could not change directory to '$TARGET_FILE'"
|
|
exit 1
|
|
}
|
|
TARGET_FILE="$(basename "$TARGET_FILE")"
|
|
done
|
|
|
|
# Find the physical path and name of target file.
|
|
DIR=$(pwd -P)
|
|
BIN=$(basename "$0")
|
|
|
|
cd "$DIR" || {
|
|
_errcode=$?
|
|
printerr "Could not change directory to '$DIR'"
|
|
exit $_errcode
|
|
}
|
|
|
|
# If name does not match a binary or is this same script, find the right one
|
|
if [ ! -f "$BIN" ] || [ "$BIN" = "cataclysm-launcher" ]
|
|
then
|
|
BIN=
|
|
for bin in cataclysm-tiles cataclysm
|
|
do
|
|
[ -f "$bin" ] && BIN="$bin" break
|
|
done
|
|
fi
|
|
|
|
if [ "$BIN" ]
|
|
then
|
|
exec ./$BIN "$@"
|
|
else
|
|
printerr "Couldn't find cataclysm game binary in '$DIR'/"
|
|
exit 1
|
|
fi
|