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

* Refactor pyenv plugin to use PATH
This commit is contained in:
Terrance Kennedy 2018-04-22 12:03:58 -06:00 committed by Marc Cornellà
parent 897a7da6c5
commit 8efcf2776b

View File

@ -1,50 +1,17 @@
_homebrew-installed() { # This plugin loads pyenv into the current shell and provides prompt info via
type brew &> /dev/null # the 'pyenv_prompt_info' function. Also loads pyenv-virtualenv if available.
}
_pyenv-from-homebrew-installed() { if (( $+commands[pyenv] )); then
brew --prefix pyenv &> /dev/null
}
FOUND_PYENV=0
pyenvdirs=("$HOME/.pyenv" "/usr/local/pyenv" "/opt/pyenv")
for pyenvdir in "${pyenvdirs[@]}" ; do
if [ -d $pyenvdir/bin -a $FOUND_PYENV -eq 0 ] ; then
FOUND_PYENV=1
export PYENV_ROOT=$pyenvdir
export PATH=${pyenvdir}/bin:$PATH
eval "$(pyenv init - zsh)" eval "$(pyenv init - zsh)"
if (( $+commands[pyenv-virtualenv-init] )); then
if pyenv commands | command grep -q virtualenv-init; then
eval "$(pyenv virtualenv-init - zsh)" eval "$(pyenv virtualenv-init - zsh)"
fi fi
function pyenv_prompt_info() { function pyenv_prompt_info() {
echo "$(pyenv version-name)" echo "$(pyenv version-name)"
} }
fi else
done # fallback to system python
unset pyenvdir
if [ $FOUND_PYENV -eq 0 ] ; then
pyenvdir=$(brew --prefix pyenv 2> /dev/null)
if [ $? -eq 0 -a -d $pyenvdir/bin ] ; then
FOUND_PYENV=1
export PYENV_ROOT=$pyenvdir
export PATH=${pyenvdir}/bin:$PATH
eval "$(pyenv init - zsh)"
if pyenv commands | command grep -q virtualenv-init; then
eval "$(pyenv virtualenv-init - zsh)"
fi
function pyenv_prompt_info() { function pyenv_prompt_info() {
echo "$(pyenv version-name)" echo "system: $(python -V 2>&1 | cut -f 2 -d ' ')"
} }
fi
fi
if [ $FOUND_PYENV -eq 0 ] ; then
function pyenv_prompt_info() { echo "system: $(python -V 2>&1 | cut -f 2 -d ' ')" }
fi fi