3a822bb5fdc30e5b623f409af5c894fe9ad90d15

Author
Marc Cornellà <marc.cornella@live.com>
Committer
Marc Cornellà <marc.cornella@live.com>
Date

Message

jenv: refactor and optimize logic

Diff

 1diff --git a/plugins/jenv/jenv.plugin.zsh b/plugins/jenv/jenv.plugin.zsh
 2index f131aa2f9aae4a92db3d59283de82f1efe0770e2..6c52635bb749991848d0ea56d659f28ad1c94c23 100644
 3--- a/plugins/jenv/jenv.plugin.zsh
 4+++ b/plugins/jenv/jenv.plugin.zsh
 5@@ -1,33 +1,30 @@
 6-_homebrew-installed() {
 7-    type brew &> /dev/null
 8-}
 9-
10-_jenv-from-homebrew-installed() {
11-    brew --prefix jenv &> /dev/null
12-}
13-
14 jenvdirs=("$HOME/.jenv" "/usr/local/jenv" "/opt/jenv")
15-if _homebrew-installed && _jenv-from-homebrew-installed ; then
16-    jenvdirs+=($(brew --prefix jenv) "${jenvdirs[@]}")
17-fi
18 
19 FOUND_JENV=0
20-for jenvdir in "${jenvdirs[@]}" ; do
21-    if [ -d $jenvdir/bin -a $FOUND_JENV -eq 0 ] ; then
22+for jenvdir in $jenvdirs; do
23+    if [[ -d "${jenvdir}/bin" ]]; then
24         FOUND_JENV=1
25-        export PATH="${jenvdir}/bin:$PATH"
26-        eval "$(jenv init - zsh)"
27+        break
28+    fi
29+done
30 
31-        function jenv_prompt_info() {
32-          echo "$(jenv version-name)"
33-        }
34+if [[ $FOUND_JENV -eq 0 ]]; then
35+    if (( $+commands[brew] )) && jenvdir="$(brew --prefix jenv)"; then
36+        FOUND_JENV=1
37     fi
38-    if [ -d $jenvdir/versions -a $FOUND_JENV -eq 0 ] ; then
39+fi
40+
41+if [[ $FOUND_JENV -eq 1 ]]; then
42+    export PATH="${jenvdir}/bin:$PATH"
43+    eval "$(jenv init - zsh)"
44+
45+    function jenv_prompt_info() { jenv version-name 2>/dev/null }
46+
47+    if [[ -d "${jenvdir}/versions" ]]; then
48         export JENV_ROOT=$jenvdir
49     fi
50-done
51-unset jenvdir
52-
53-if [ $FOUND_JENV -eq 0 ] ; then
54+else
55     function jenv_prompt_info() { echo "system: $(java -version 2>&1 | cut -f 2 -d ' ')" }
56 fi
57+
58+unset jenvdir FOUND_JENV