Browse Source

python-info: add support for pyenv and only do extra work if the prompt needs it

master
Kaleb Elwert 7 years ago
parent
commit
c72ea38979
  1. 30
      modules/python/functions/python-info

30
modules/python/functions/python-info

@ -13,29 +13,39 @@ local virtualenv_format
local virtualenv_formatted local virtualenv_formatted
local version_format local version_format
local version_formatted local version_formatted
local version
# Clean up previous $python_info. # Clean up previous $python_info.
unset python_info unset python_info
typeset -gA python_info typeset -gA python_info
# Grab the styling we might have to do
zstyle -s ':prezto:module:python:info:virtualenv' format 'virtualenv_format'
zstyle -s ':prezto:module:python:info:version' format 'version_format'
# Format virtualenv. # Format virtualenv.
if [[ -n "$VIRTUAL_ENV" ]]; then if [[ -n "$virtualenv_format" ]]; then
zstyle -s ':prezto:module:python:info:virtualenv' format 'virtualenv_format' if [[ -n "$VIRTUAL_ENV" ]]; then
zformat -f virtualenv_formatted "$virtualenv_format" "v:${VIRTUAL_ENV:t}" zformat -f virtualenv_formatted "$virtualenv_format" "v:${VIRTUAL_ENV:t}"
python_info[virtualenv]="$virtualenv_formatted" python_info[virtualenv]="$virtualenv_formatted"
fi fi
# Do the same for Conda virtual environments # Do the same for Conda virtual environments
if [[ -n "$CONDA_DEFAULT_ENV" ]]; then if [[ -n "$CONDA_DEFAULT_ENV" ]]; then
zstyle -s ':prezto:module:python:info:virtualenv' format 'virtualenv_format'
zformat -f virtualenv_formatted "$virtualenv_format" "v:${CONDA_DEFAULT_ENV:t}" zformat -f virtualenv_formatted "$virtualenv_format" "v:${CONDA_DEFAULT_ENV:t}"
python_info[virtualenv]="$virtualenv_formatted" python_info[virtualenv]="$virtualenv_formatted"
fi
fi fi
if (( $+commands[python] )); then if [[ -n "$version_format" ]]; then
zstyle -s ':prezto:module:python:info:version' format 'version_format' if (( $+commands[pyenv] )); then
if [[ -n "$version_format" ]]; then version="${"$(pyenv version)"%% *}"
zformat -f version_formatted "$version_format" "v:${$(python3 --version)#Python }" elif (( $+commands[python] )); then
version="${$(python3 --version)#Python }"
fi
if [[ -n "$version" && "$version" != "system" ]]; then
zformat -f version_formatted "$version_format" "v:$version"
python_info[version]="$version_formatted" python_info[version]="$version_formatted"
fi fi
fi fi

Loading…
Cancel
Save