8efcf2776b2e7e00c073b149f76c04715aa695d3

Author
Terrance Kennedy <terrance@sensu.io>
Committer
Marc Cornellà <marc.cornella@live.com>
Date

Message

pyenv plugin refactor (8x faster) (#6165)

* Refactor pyenv plugin to use PATH

Diff

 1diff --git a/plugins/pyenv/pyenv.plugin.zsh b/plugins/pyenv/pyenv.plugin.zsh
 2index ec3ae9f5b869b9d79883dd18a211eecfa668eece..76880e4157a56b7ffc6550e33010cf491a694366 100644
 3--- a/plugins/pyenv/pyenv.plugin.zsh
 4+++ b/plugins/pyenv/pyenv.plugin.zsh
 5@@ -1,50 +1,17 @@
 6-_homebrew-installed() {
 7-    type brew &> /dev/null
 8-}
 9+# This plugin loads pyenv into the current shell and provides prompt info via
10+# the 'pyenv_prompt_info' function. Also loads pyenv-virtualenv if available.
11 
12-_pyenv-from-homebrew-installed() {
13-    brew --prefix pyenv &> /dev/null
14-}
15-
16-FOUND_PYENV=0
17-pyenvdirs=("$HOME/.pyenv" "/usr/local/pyenv" "/opt/pyenv")
18-
19-for pyenvdir in "${pyenvdirs[@]}" ; do
20-    if [ -d $pyenvdir/bin -a $FOUND_PYENV -eq 0 ] ; then
21-        FOUND_PYENV=1
22-        export PYENV_ROOT=$pyenvdir
23-        export PATH=${pyenvdir}/bin:$PATH
24-        eval "$(pyenv init - zsh)"
25-
26-        if pyenv commands | command grep -q virtualenv-init; then
27-            eval "$(pyenv virtualenv-init - zsh)"
28-        fi
29-
30-        function pyenv_prompt_info() {
31-            echo "$(pyenv version-name)"
32-        }
33-    fi
34-done
35-unset pyenvdir
36-
37-if [ $FOUND_PYENV -eq 0 ] ; then
38-    pyenvdir=$(brew --prefix pyenv 2> /dev/null)
39-    if [ $? -eq 0 -a -d $pyenvdir/bin ] ; then
40-        FOUND_PYENV=1
41-        export PYENV_ROOT=$pyenvdir
42-        export PATH=${pyenvdir}/bin:$PATH
43-        eval "$(pyenv init - zsh)"
44-
45-        if pyenv commands | command grep -q virtualenv-init; then
46-            eval "$(pyenv virtualenv-init - zsh)"
47-        fi
48-
49-        function pyenv_prompt_info() {
50-            echo "$(pyenv version-name)"
51-        }
52+if (( $+commands[pyenv] )); then
53+    eval "$(pyenv init - zsh)"
54+    if (( $+commands[pyenv-virtualenv-init] )); then
55+        eval "$(pyenv virtualenv-init - zsh)"
56     fi
57-fi
58-
59-if [ $FOUND_PYENV -eq 0 ] ; then
60-    function pyenv_prompt_info() { echo "system: $(python -V 2>&1 | cut -f 2 -d ' ')" }
61+    function pyenv_prompt_info() {
62+        echo "$(pyenv version-name)"
63+    }
64+else
65+    # fallback to system python
66+    function pyenv_prompt_info() {
67+        echo "system: $(python -V 2>&1 | cut -f 2 -d ' ')"
68+    }
69 fi