diff --git a/src/universal/bin/sbt-launch-lib.bash b/src/universal/bin/sbt-launch-lib.bash index cb7a66a46..3e2c2b450 100755 --- a/src/universal/bin/sbt-launch-lib.bash +++ b/src/universal/bin/sbt-launch-lib.bash @@ -12,10 +12,22 @@ declare -a scalac_args declare -a sbt_commands declare java_cmd=java declare java_version -declare -r sbt_bin_dir="$(dirname "$(realpath "$0")")" -declare -r sbt_home="$(dirname "$sbt_bin_dir")" declare init_sbt_version= +declare SCRIPT=$0 +while [ -h "$SCRIPT" ] ; do + ls=$(ls -ld "$SCRIPT") + # Drop everything prior to -> + link=$(expr "$ls" : '.*-> \(.*\)$') + if expr "$link" : '/.*' > /dev/null; then + SCRIPT="$link" + else + SCRIPT=$(dirname "$SCRIPT")/"$link" + fi +done +declare -r sbt_bin_dir="$(dirname "$SCRIPT")" +declare -r sbt_home="$(dirname "$sbt_bin_dir")" + echoerr () { echo 1>&2 "$@" }