Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/utils/bin/narwhal
diff options
context:
space:
mode:
Diffstat (limited to 'utils/bin/narwhal')
-rwxr-xr-xutils/bin/narwhal33
1 files changed, 11 insertions, 22 deletions
diff --git a/utils/bin/narwhal b/utils/bin/narwhal
index 1617491..01fd4b1 100755
--- a/utils/bin/narwhal
+++ b/utils/bin/narwhal
@@ -1,7 +1,7 @@
#!/bin/bash
# get the absolute path of the executable
-SELF_PATH=$(cd -P -- "$(dirname -- "$0")" && pwd -P) && SELF_PATH=$SELF_PATH/$(basename -- "$0")
+SELF_PATH=$(cd -P -- "$(dirname -- "$0")" && pwd -P) && SELF_PATH="$SELF_PATH/$(basename -- "$0")"
# resolve symlinks
while [ -h "$SELF_PATH" ]; do
@@ -10,50 +10,39 @@ while [ -h "$SELF_PATH" ]; do
SELF_PATH=$(cd -- "$DIR" && cd -- $(dirname -- "$SYM") && pwd)/$(basename -- "$SYM")
done
+# NARWHAL_HOME is the 2nd ancestor directory of this shell script
NARWHAL_HOME=$(dirname -- "$(dirname -- "$SELF_PATH")")
+# use Rhino as the default if none is specified in narwhal.conf
NARWHAL_DEFAULT_PLATFORM="rhino"
+
+# load narwhal.conf if it exists
if [ -f "$NARWHAL_HOME/narwhal.conf" ]; then
source "$NARWHAL_HOME"/narwhal.conf
fi
+
+# if NARWHAL_PLATFORM isn't yet set, set it to the default platform, and export it
if [ -z "$NARWHAL_PLATFORM" ]; then
NARWHAL_PLATFORM=$NARWHAL_DEFAULT_PLATFORM
fi
-
-# get the absolute path of the executable
-SELF_PATH=$(cd -P -- "$(dirname -- "$0")" && pwd -P) && SELF_PATH="$SELF_PATH/$(basename -- "$0")"
-
-# resolve symlinks
-while [ -h "$SELF_PATH" ]; do
- DIR=$(dirname -- "$SELF_PATH")
- SYM=$(readlink -- "$SELF_PATH")
- SELF_PATH=$(cd -- "$DIR" && cd "$(dirname -- "$SYM")" && pwd)/$(basename -- "$SYM")
-done
-
-SELF_DIR=`dirname -- "$SELF_PATH"`
-NARWHAL_HOME=`dirname -- "$SELF_DIR"`
-
-if [ ! "$NARWHAL_PLATFORM" ]; then
- NARWHAL_PLATFORM=$NARWHAL_DEFAULT_PLATFORM
-fi
-
export NARWHAL_HOME
+# build the executable name for the platform
EXECUTABLE_NAME="narwhal-$NARWHAL_PLATFORM"
+# search for the platform home directory
# try narwhal.conf setting
if [ "$NARWHAL_PLATFORM_HOME" ]; then
export NARWHAL_PLATFORM_HOME
- "$NARWHAL_PLATFORM_HOME"/bin/"$EXECUTABLE_NAME" "$@"
# try relative
elif [ -f "$NARWHAL_HOME/platforms/$NARWHAL_PLATFORM/bin/$EXECUTABLE_NAME" ]; then
export NARWHAL_PLATFORM_HOME="$NARWHAL_HOME/platforms/$NARWHAL_PLATFORM"
- "$NARWHAL_HOME/platforms/$NARWHAL_PLATFORM/bin/$EXECUTABLE_NAME" "$@"
# try $PATH
elif which -s "$EXECUTABLE_NAME"; then
export NARWHAL_PLATFORM_HOME=$(dirname -- "$(dirname -- "$EXECUTABLE_NAME")")
- "$EXECUTABLE_NAME" "$@"
else
echo "Can't find executable for $NARWHAL_PLATFORM"
+ exit 1
fi
+exec "$NARWHAL_PLATFORM_HOME"/bin/"$EXECUTABLE_NAME" "$@"