From 5278c64b6907fcae2c8551834c1461a04ec352fd Mon Sep 17 00:00:00 2001 From: gouvinb Date: Wed, 16 Jul 2025 10:45:10 +0200 Subject: [PATCH] Quote all references to path related variables (and variables that use it) to avoid word splitting. This avoids errors where path contains spaces (e.g. `$HOME/Library/Application Support/jenv`). --- .../ant/etc/jenv.d/rehash/ant.bash | 4 +-- .../etc/jenv.d/init/export_jenv_hook.bash | 9 +++---- .../etc/jenv.d/init/export_jenv_hook.zsh | 9 +++---- .../golo/etc/jenv.d/rehash/golo.bash | 4 +-- .../gradle/etc/jenv.d/rehash/gradle.bash | 4 +-- .../grails/etc/jenv.d/rehash/grails.bash | 4 +-- .../groovy/etc/jenv.d/rehash/groovy.bash | 4 +-- .../lein/etc/jenv.d/rehash/lein.bash | 4 +-- .../maven/etc/jenv.d/rehash/maven.bash | 4 +-- .../sbt/etc/jenv.d/exec/sbt-before.bash | 2 +- .../sbt/etc/jenv.d/rehash/sbt.bash | 4 +-- .../scala/etc/jenv.d/rehash/scala.bash | 4 +-- .../etc/jenv.d/rehash/springboot.bash | 4 +-- .../vlt/etc/jenv.d/rehash/vlt.bash | 4 +-- libexec/jenv | 26 +++++++++---------- libexec/jenv-add | 6 ++--- libexec/jenv-hooks | 6 ++--- libexec/jenv-plugins | 4 +-- libexec/jenv-refresh-plugins | 2 +- libexec/jenv-refresh-versions | 4 +-- libexec/jenv-versions | 6 ++--- 21 files changed, 58 insertions(+), 60 deletions(-) diff --git a/available-plugins/ant/etc/jenv.d/rehash/ant.bash b/available-plugins/ant/etc/jenv.d/rehash/ant.bash index da0e7a9..e365b12 100644 --- a/available-plugins/ant/etc/jenv.d/rehash/ant.bash +++ b/available-plugins/ant/etc/jenv.d/rehash/ant.bash @@ -1,11 +1,11 @@ -backuppath=$PATH +backuppath="$PATH" PATH="$(remove_from_path "${JENV_ROOT}/shims")" ANT_BIN="$(command -v "ant" || true)" -PATH=$backuppath +PATH="$backuppath" #echo "make shims $MAVEN_BIN" make_shims "$ANT_BIN" diff --git a/available-plugins/export/etc/jenv.d/init/export_jenv_hook.bash b/available-plugins/export/etc/jenv.d/init/export_jenv_hook.bash index b58390c..9d1a38d 100644 --- a/available-plugins/export/etc/jenv.d/init/export_jenv_hook.bash +++ b/available-plugins/export/etc/jenv.d/init/export_jenv_hook.bash @@ -1,16 +1,15 @@ #export - _jenv_export_hook() { - export JAVA_HOME=$(jenv javahome 2>/dev/null) +_jenv_export_hook() { + export JAVA_HOME="$(jenv javahome 2>/dev/null)" export JENV_FORCEJAVAHOME=true - if [ -e "$JAVA_HOME/bin/javac" ] - then + if [ -e "$JAVA_HOME/bin/javac" ]; then export JDK_HOME="$JAVA_HOME" export JENV_FORCEJDKHOME=true fi - } +} if ! [[ "$PROMPT_COMMAND" =~ _jenv_export_hook ]]; then PROMPT_COMMAND="_jenv_export_hook;$PROMPT_COMMAND"; diff --git a/available-plugins/export/etc/jenv.d/init/export_jenv_hook.zsh b/available-plugins/export/etc/jenv.d/init/export_jenv_hook.zsh index c921c0f..b755f2d 100644 --- a/available-plugins/export/etc/jenv.d/init/export_jenv_hook.zsh +++ b/available-plugins/export/etc/jenv.d/init/export_jenv_hook.zsh @@ -1,15 +1,14 @@ #export - _jenv_export_hook() { - export JAVA_HOME=$(jenv javahome 2>/dev/null) +_jenv_export_hook() { + export JAVA_HOME="$(jenv javahome 2>/dev/null)" export JENV_FORCEJAVAHOME=true - if [ -e "$JAVA_HOME/bin/javac" ] - then + if [ -e "$JAVA_HOME/bin/javac" ]; then export JDK_HOME="$JAVA_HOME" export JENV_FORCEJDKHOME=true fi - } +} #echo "configure export plugin for ZSH" function install_hook { diff --git a/available-plugins/golo/etc/jenv.d/rehash/golo.bash b/available-plugins/golo/etc/jenv.d/rehash/golo.bash index 7323737..5077516 100644 --- a/available-plugins/golo/etc/jenv.d/rehash/golo.bash +++ b/available-plugins/golo/etc/jenv.d/rehash/golo.bash @@ -1,6 +1,6 @@ -backuppath=$PATH +backuppath="$PATH" PATH="$(remove_from_path "${JENV_ROOT}/shims")" GOLO_BIN="$(command -v "golo" || true)" @@ -8,7 +8,7 @@ GOLOC_BIN="$(command -v "goloc" || true)" GOLOGOLO_BIN="$(command -v "gologolo" || true)" -PATH=$backuppath +PATH="$backuppath" make_shims "$GOLOGOLO_BIN" make_shims "$GOLOC_BIN" diff --git a/available-plugins/gradle/etc/jenv.d/rehash/gradle.bash b/available-plugins/gradle/etc/jenv.d/rehash/gradle.bash index edc6afe..243cc68 100644 --- a/available-plugins/gradle/etc/jenv.d/rehash/gradle.bash +++ b/available-plugins/gradle/etc/jenv.d/rehash/gradle.bash @@ -1,11 +1,11 @@ -backuppath=$PATH +backuppath="$PATH" PATH="$(remove_from_path "${JENV_ROOT}/shims")" GRADLE_BIN="$(command -v "gradle" || true)" -PATH=$backuppath +PATH="$backuppath" #echo "make shims $MAVEN_BIN" make_shims "$GRADLE_BIN" diff --git a/available-plugins/grails/etc/jenv.d/rehash/grails.bash b/available-plugins/grails/etc/jenv.d/rehash/grails.bash index 597efd2..deb62e2 100644 --- a/available-plugins/grails/etc/jenv.d/rehash/grails.bash +++ b/available-plugins/grails/etc/jenv.d/rehash/grails.bash @@ -1,6 +1,6 @@ -backuppath=$PATH +backuppath="$PATH" PATH="$(remove_from_path "${JENV_ROOT}/shims")" GRAILS_BIN="$(command -v "grails" || true)" @@ -9,7 +9,7 @@ make_shims "$GRAILS_BIN" GRAILS_DEBUG="$(command -v "grails-debug" || true)" make_shims "$GRAILS_DEBUG" -PATH=$backuppath +PATH="$backuppath" diff --git a/available-plugins/groovy/etc/jenv.d/rehash/groovy.bash b/available-plugins/groovy/etc/jenv.d/rehash/groovy.bash index b8aba9f..44db797 100644 --- a/available-plugins/groovy/etc/jenv.d/rehash/groovy.bash +++ b/available-plugins/groovy/etc/jenv.d/rehash/groovy.bash @@ -1,6 +1,6 @@ -backuppath=$PATH +backuppath="$PATH" PATH="$(remove_from_path "${JENV_ROOT}/shims")" GROOVY_BIN="$(command -v "groovy" || true)" @@ -16,7 +16,7 @@ GROOVY_BIN="$(command -v "groovysh" || true)" make_shims "$GROOVY_BIN" -PATH=$backuppath +PATH="$backuppath" diff --git a/available-plugins/lein/etc/jenv.d/rehash/lein.bash b/available-plugins/lein/etc/jenv.d/rehash/lein.bash index 65b7b80..8b8622e 100644 --- a/available-plugins/lein/etc/jenv.d/rehash/lein.bash +++ b/available-plugins/lein/etc/jenv.d/rehash/lein.bash @@ -1,13 +1,13 @@ -backuppath=$PATH +backuppath="$PATH" PATH="$(remove_from_path "${JENV_ROOT}/shims")" LEIN_BIN="$(command -v "lein" || true)" -PATH=$backuppath +PATH="$backuppath" make_shims "$LEIN_BIN" diff --git a/available-plugins/maven/etc/jenv.d/rehash/maven.bash b/available-plugins/maven/etc/jenv.d/rehash/maven.bash index e0efca0..57677a2 100644 --- a/available-plugins/maven/etc/jenv.d/rehash/maven.bash +++ b/available-plugins/maven/etc/jenv.d/rehash/maven.bash @@ -1,13 +1,13 @@ -backuppath=$PATH +backuppath="$PATH" PATH="$(remove_from_path "${JENV_ROOT}/shims")" MAVEN_BIN="$(command -v "mvn" || true)" MAVEN_DEBUG="$(command -v "mvnDebug" || true)" -PATH=$backuppath +PATH="$backuppath" make_shims "$MAVEN_BIN" make_shims "$MAVEN_DEBUG" diff --git a/available-plugins/sbt/etc/jenv.d/exec/sbt-before.bash b/available-plugins/sbt/etc/jenv.d/exec/sbt-before.bash index c0c9976..c7bcc30 100644 --- a/available-plugins/sbt/etc/jenv.d/exec/sbt-before.bash +++ b/available-plugins/sbt/etc/jenv.d/exec/sbt-before.bash @@ -7,5 +7,5 @@ if [ "$1" = "sbt" ]; then fi unset JENV_OPTIONS fi - JENV_OPTIONS="$JENV_OPTIONS -java-home $JAVA_HOME" + JENV_OPTIONS="$JENV_OPTIONS -java-home '$JAVA_HOME'" fi diff --git a/available-plugins/sbt/etc/jenv.d/rehash/sbt.bash b/available-plugins/sbt/etc/jenv.d/rehash/sbt.bash index 8e94f08..05301b8 100644 --- a/available-plugins/sbt/etc/jenv.d/rehash/sbt.bash +++ b/available-plugins/sbt/etc/jenv.d/rehash/sbt.bash @@ -1,12 +1,12 @@ -backuppath=$PATH +backuppath="$PATH" PATH="$(remove_from_path "${JENV_ROOT}/shims")" SBT_BIN="$(command -v "sbt" || true)" -PATH=$backuppath +PATH="$backuppath" make_shims "$SBT_BIN" diff --git a/available-plugins/scala/etc/jenv.d/rehash/scala.bash b/available-plugins/scala/etc/jenv.d/rehash/scala.bash index b0fe740..c4bf296 100644 --- a/available-plugins/scala/etc/jenv.d/rehash/scala.bash +++ b/available-plugins/scala/etc/jenv.d/rehash/scala.bash @@ -1,6 +1,6 @@ -backuppath=$PATH +backuppath="$PATH" PATH="$(remove_from_path "${JENV_ROOT}/shims")" SCALA_BIN="$(command -v "scala" || true)" @@ -8,7 +8,7 @@ SCALAC_BIN="$(command -v "scalac" || true)" FSC_BIN="$(command -v "fsc" || true)" -PATH=$backuppath +PATH="$backuppath" make_shims "$SCALA_BIN" make_shims "$SCALAC_BIN" diff --git a/available-plugins/springboot/etc/jenv.d/rehash/springboot.bash b/available-plugins/springboot/etc/jenv.d/rehash/springboot.bash index 01e40e5..590f6c5 100644 --- a/available-plugins/springboot/etc/jenv.d/rehash/springboot.bash +++ b/available-plugins/springboot/etc/jenv.d/rehash/springboot.bash @@ -1,6 +1,6 @@ -backuppath=$PATH +backuppath="$PATH" PATH="$(remove_from_path "${JENV_ROOT}/shims")" GRAILS_BIN="$(command -v "spring" || true)" @@ -8,7 +8,7 @@ make_shims "$GRAILS_BIN" -PATH=$backuppath +PATH="$backuppath" diff --git a/available-plugins/vlt/etc/jenv.d/rehash/vlt.bash b/available-plugins/vlt/etc/jenv.d/rehash/vlt.bash index 57d46cb..5a6df3f 100644 --- a/available-plugins/vlt/etc/jenv.d/rehash/vlt.bash +++ b/available-plugins/vlt/etc/jenv.d/rehash/vlt.bash @@ -1,9 +1,9 @@ -backuppath=$PATH +backuppath="$PATH" PATH="$(remove_from_path "${JENV_ROOT}/shims")" VLT_BIN="$(command -v "vlt" || true)" make_shims "$VLT_BIN" -PATH=$backuppath +PATH="$backuppath" diff --git a/libexec/jenv b/libexec/jenv index 34a1a04..dfa8bb8 100755 --- a/libexec/jenv +++ b/libexec/jenv @@ -22,23 +22,23 @@ abs_dirname() { resolvepath() { local cwd="$(pwd)" - cd $1 + cd "$1" echo "$(pwd)" cd "$cwd" } samedir() { - if [ -d $1 ] && [ -d $2 ]; then - local path1="$(resolvepath $1)" - local path2="$(resolvepath $2)" - - if [ $path1 == $path2 ]; then - return 0; - else - return 1; + if [ -d "$1" ] && [ -d "$2" ]; then + local path1="$(resolvepath "$1")" + local path2="$(resolvepath "$2")" + + if [ "$path1" == "$path2" ]; then + return 0; + else + return 1; + fi fi -fi -return 0; + return 0; } if [ -z "${JENV_ROOT}" ]; then @@ -70,7 +70,7 @@ shopt -s nullglob bin_path="$(abs_dirname "$0")" if ! samedir "${JENV_ROOT}" "$bin_path/../" ; then - JENV_INSTALL_DIR=$(resolvepath "$bin_path/../") + JENV_INSTALL_DIR="$(resolvepath "$bin_path/../")" else JENV_INSTALL_DIR="$JENV_ROOT" fi @@ -91,7 +91,7 @@ for plugin_hook in "${JENV_ROOT}/plugins/"*/etc/jenv.d; do done -export JENV_HOOK_PATH=$hook_path +export JENV_HOOK_PATH="$hook_path" diff --git a/libexec/jenv-add b/libexec/jenv-add index a82a769..ef85303 100755 --- a/libexec/jenv-add +++ b/libexec/jenv-add @@ -13,7 +13,7 @@ fi if [ "$1" = "--complete" ]; then echo "--skip-existing" for d in ${!#}*; do - [[ -d "$d" ]] && echo $d/ + [[ -d "$d" ]] && echo "$d/" done exit fi @@ -59,7 +59,7 @@ function add_alias_check(){ function add_alias(){ cd "${JENV_JAVAPATH}" - JENV_JAVAPATH=$PWD + JENV_JAVAPATH="$PWD" cd - 2>&1 > /dev/null mkdir -p "${JENV_ROOT}/versions" ln -s "${JENV_JAVAPATH}" "${JENV_ROOT}/versions/$1" @@ -122,7 +122,7 @@ if [ -f "${JENV_JAVAPATH}/bin/java" ]; then if [ $JAVA_PROVIDER=="sap" ]; then JAVA_PLATFORM="64" else - if ${JENV_JAVAPATH}/bin/java -version 2>&1 | grep -q "64-Bit"; then + if "${JENV_JAVAPATH}/bin/java" -version 2>&1 | grep -q "64-Bit"; then JAVA_PLATFORM="64" else JAVA_PLATFORM="32" diff --git a/libexec/jenv-hooks b/libexec/jenv-hooks index 0f9bff0..a68c15e 100755 --- a/libexec/jenv-hooks +++ b/libexec/jenv-hooks @@ -49,17 +49,17 @@ for path in ${JENV_HOOK_PATH//:/$'\n'}; do case "$shell" in bash ) for script in $path/"$JENV_COMMAND"/*.bash; do - echo $(realpath $script) + echo $(realpath "$script") done ;; zsh ) for script in $path/"$JENV_COMMAND"/*.zsh; do - echo $(realpath $script) + echo $(realpath "$script") done ;; fish ) for script in $path/"$JENV_COMMAND"/*.fish; do - echo $(realpath $script) + echo $(realpath "$script") done ;; esac diff --git a/libexec/jenv-plugins b/libexec/jenv-plugins index d597417..f9bd9f3 100755 --- a/libexec/jenv-plugins +++ b/libexec/jenv-plugins @@ -21,7 +21,7 @@ samedir() { local path1="$(resolvepath $1)" local path2="$(resolvepath $2)" - if [ $path1 == $path2 ]; then + if [ "$path1" == "$path2" ]; then return 0; else return 1; @@ -30,7 +30,7 @@ samedir() { resolvepath() { local cwd="$(pwd)" - cd $1 + cd "$1" echo "$(pwd)" cd "$cwd" } diff --git a/libexec/jenv-refresh-plugins b/libexec/jenv-refresh-plugins index bd4e518..d3d72f1 100755 --- a/libexec/jenv-refresh-plugins +++ b/libexec/jenv-refresh-plugins @@ -32,7 +32,7 @@ if [ ! "$lastVersion" == "$currentVersion" ] || [ $FORCE_REFRESH == "1" ]; then echo "jenv has been updated, process to refresh plugin links" for path in "${JENV_ROOT}/plugins/"*; do if [ -L "$path" ]; then - pluginName=$(basename $path) + pluginName=$(basename "$path") echo "Refresh plugin $pluginName" ln -sfn "${JENV_INSTALL_DIR}/available-plugins/$pluginName" "${JENV_ROOT}/plugins/$pluginName" fi diff --git a/libexec/jenv-refresh-versions b/libexec/jenv-refresh-versions index 048b5c5..de016a5 100755 --- a/libexec/jenv-refresh-versions +++ b/libexec/jenv-refresh-versions @@ -11,9 +11,9 @@ set -e for path in "${JENV_ROOT}/versions/"*; do if [ -d "$path" ]; then - aliasname=$(basename $path) + aliasname=$(basename "$path") if test "${JENV_ROOT}/$aliasname.time" -ot "$path/bin/java"; then - realpath=$(resolve_link $path) + realpath="$(resolve_link "$path")" jenv remove $aliasname >> /dev/null newalias=$(jenv add $realpath) newalias=${newalias%added} diff --git a/libexec/jenv-versions b/libexec/jenv-versions index 86563c4..35b92b1 100755 --- a/libexec/jenv-versions +++ b/libexec/jenv-versions @@ -25,7 +25,7 @@ fi resolvepath() { local cwd="$(pwd)" - cd $1 + cd "$1" echo "$(pwd -P)" cd "$cwd" } @@ -37,7 +37,7 @@ print_version() { if [ "$1" == "$current_version" ]; then echo "${hit_prefix}$(jenv-version 2>/dev/null)" if $verbose ; then - local realPath="$(resolvepath $2)" + local realPath="$(resolvepath "$2")" echo " $2" echo " --> $realPath" echo "" @@ -45,7 +45,7 @@ print_version() { else echo "${miss_prefix}$1" if $verbose ; then - local realPath="$(resolvepath $2)" + local realPath="$(resolvepath "$2")" echo " $2" echo " --> $realPath"