diff --git a/src/universal/bin/sbt-launch-lib.bash b/src/universal/bin/sbt-launch-lib.bash index c93245dc1..e7155a148 100755 --- a/src/universal/bin/sbt-launch-lib.bash +++ b/src/universal/bin/sbt-launch-lib.bash @@ -213,54 +213,17 @@ process_args () { vlog "[process_args] java_version = '$java_version'" } -# Extracts the preloaded directory from either -Dsbt.preloaded or -Dsbt.global.base -# properties by looking at: -# - _JAVA_OPTIONS environment variable, -# - SBT_OPTS environment variable, -# - JAVA_OPTS environment variable and -# - properties set by command-line options -# in that order. The last one will be chosen such that `sbt.preloaded` is -# always preferred over `sbt.global.base`. -getPreloaded() { - local -a _java_options_array - local -a sbt_opts_array - local -a java_opts_array - read -a _java_options_array <<< "$_JAVA_OPTIONS" - read -a sbt_opts_array <<< "$SBT_OPTS" - read -a java_opts_array <<< "$JAVA_OPTS" - - local args_to_check=( - "${_java_options_array[@]}" - "${sbt_opts_array[@]}" - "${java_opts_array[@]}" - "${java_args[@]}") - local via_global_base="$HOME/.sbt/preloaded" - local via_explicit="" - - for opt in "${args_to_check[@]}"; do - if [[ "$opt" == -Dsbt.preloaded=* ]]; then - via_explicit="${opt#-Dsbt.preloaded=}" - elif [[ "$opt" == -Dsbt.global.base=* ]]; then - via_global_base="${opt#-Dsbt.global.base=}/preloaded" - fi - done - - echo "${via_explicit:-${via_global_base}}" -} - syncPreloaded() { - local source_preloaded="$sbt_home/lib/local-preloaded" - local target_preloaded="$(getPreloaded)" if [[ "$init_sbt_version" == "" ]]; then # FIXME: better $init_sbt_version detection - init_sbt_version="$(ls -1 "$source_preloaded/org.scala-sbt/sbt/")" + init_sbt_version="$(ls -1 "$sbt_home/lib/local-preloaded/org.scala-sbt/sbt/")" fi - [[ -f "$target_preloaded/org.scala-sbt/sbt/$init_sbt_version/jars/sbt.jar" ]] || { + [[ -f "$HOME/.sbt/preloaded/org.scala-sbt/sbt/$init_sbt_version/jars/sbt.jar" ]] || { # lib/local-preloaded exists (This is optional) - [[ -d "$source_preloaded" ]] && { + [[ -d "$sbt_home/lib/local-preloaded/" ]] && { command -v rsync >/dev/null 2>&1 && { - mkdir -p "$target_preloaded" - rsync -a --ignore-existing "$source_preloaded" "$preloaded" + mkdir -p "$HOME/.sbt/preloaded" + rsync -a --ignore-existing "$sbt_home/lib/local-preloaded/" "$HOME/.sbt/preloaded" } } } @@ -314,12 +277,6 @@ copyRt() { } run() { - # process the combined args, then reset "$@" to the residuals - process_args "$@" - set -- "${residual_args[@]}" - argumentCount=$# - - # Copy preloaded repo to user's preloaded directory syncPreloaded # no jar? download it. @@ -329,6 +286,11 @@ run() { exit 1 } + # process the combined args, then reset "$@" to the residuals + process_args "$@" + set -- "${residual_args[@]}" + argumentCount=$# + # TODO - java check should be configurable... checkJava "6"