@@ -54,11 +54,31 @@ export PATH="${TMP}/pyenv/plugins/pyenv-virtualenv/shims:\${PATH}";
5454export PYENV_VIRTUALENV_INIT=1;
5555_pyenv_virtualenv_hook() {
5656 local ret=\$ ?
57+ local pvh_local=""
58+ if [ -f "\$ {PWD}/.python-version" ]; then
59+ IFS= read -r pvh_local < "\$ {PWD}/.python-version" 2>/dev/null || true
60+ fi
61+ local pvh_global=""
62+ if [ -f "\$ {PYENV_ROOT}/version" ]; then
63+ IFS= read -r pvh_global < "\$ {PYENV_ROOT}/version" 2>/dev/null || true
64+ fi
65+ if [ "\$ {PWD}" = "\$ {_PYENV_VH_PWD-}" ] \\
66+ && [ "\$ {PYENV_VERSION-}" = "\$ {_PYENV_VH_VERSION-}" ] \\
67+ && [ "\$ {pvh_local}" = "\$ {_PYENV_VH_LOCAL-}" ] \\
68+ && [ "\$ {pvh_global}" = "\$ {_PYENV_VH_GLOBAL-}" ] \\
69+ && [ "\$ {VIRTUAL_ENV-}" = "\$ {_PYENV_VH_VENV-}" ]; then
70+ return \$ ret
71+ fi
5772 if [ -n "\$ {VIRTUAL_ENV-}" ]; then
5873 eval "\$ (pyenv sh-activate --quiet || pyenv sh-deactivate --quiet || true)" || true
5974 else
6075 eval "\$ (pyenv sh-activate --quiet || true)" || true
6176 fi
77+ _PYENV_VH_PWD="\$ {PWD}"
78+ _PYENV_VH_VERSION="\$ {PYENV_VERSION-}"
79+ _PYENV_VH_LOCAL="\$ {pvh_local}"
80+ _PYENV_VH_GLOBAL="\$ {pvh_global}"
81+ _PYENV_VH_VENV="\$ {VIRTUAL_ENV-}"
6282 return \$ ret
6383};
6484if ! [[ "\$ {PROMPT_COMMAND-}" =~ _pyenv_virtualenv_hook ]]; then
@@ -78,11 +98,31 @@ set -gx PATH '${TMP}/pyenv/plugins/pyenv-virtualenv/shims' \$PATH;
7898set -gx PYENV_VIRTUALENV_INIT 1;
7999function _pyenv_virtualenv_hook --on-event fish_prompt;
80100 set -l ret \$ status
101+ set -l pvh_local ""
102+ if test -f "\$ PWD/.python-version"
103+ read pvh_local < "\$ PWD/.python-version" 2>/dev/null; or true
104+ end
105+ set -l pvh_global ""
106+ if test -f "\$ PYENV_ROOT/version"
107+ read pvh_global < "\$ PYENV_ROOT/version" 2>/dev/null; or true
108+ end
109+ if test "\$ PWD" = "\$ _PYENV_VH_PWD" \\
110+ -a "\$ PYENV_VERSION" = "\$ _PYENV_VH_VERSION" \\
111+ -a "\$ pvh_local" = "\$ _PYENV_VH_LOCAL" \\
112+ -a "\$ pvh_global" = "\$ _PYENV_VH_GLOBAL" \\
113+ -a "\$ VIRTUAL_ENV" = "\$ _PYENV_VH_VENV"
114+ return \$ ret
115+ end
81116 if [ -n "\$ VIRTUAL_ENV" ]
82117 pyenv activate --quiet; or pyenv deactivate --quiet; or true
83118 else
84119 pyenv activate --quiet; or true
85120 end
121+ set -g _PYENV_VH_PWD "\$ PWD"
122+ set -g _PYENV_VH_VERSION "\$ PYENV_VERSION"
123+ set -g _PYENV_VH_LOCAL "\$ pvh_local"
124+ set -g _PYENV_VH_GLOBAL "\$ pvh_global"
125+ set -g _PYENV_VH_VENV "\$ VIRTUAL_ENV"
86126 return \$ ret
87127end
88128EOS
@@ -97,11 +137,31 @@ export PATH="${TMP}/pyenv/plugins/pyenv-virtualenv/shims:\${PATH}";
97137export PYENV_VIRTUALENV_INIT=1;
98138_pyenv_virtualenv_hook() {
99139 local ret=\$ ?
140+ local pvh_local=""
141+ if [ -f "\$ {PWD}/.python-version" ]; then
142+ IFS= read -r pvh_local < "\$ {PWD}/.python-version" 2>/dev/null || true
143+ fi
144+ local pvh_global=""
145+ if [ -f "\$ {PYENV_ROOT}/version" ]; then
146+ IFS= read -r pvh_global < "\$ {PYENV_ROOT}/version" 2>/dev/null || true
147+ fi
148+ if [ "\$ {PWD}" = "\$ {_PYENV_VH_PWD-}" ] \\
149+ && [ "\$ {PYENV_VERSION-}" = "\$ {_PYENV_VH_VERSION-}" ] \\
150+ && [ "\$ {pvh_local}" = "\$ {_PYENV_VH_LOCAL-}" ] \\
151+ && [ "\$ {pvh_global}" = "\$ {_PYENV_VH_GLOBAL-}" ] \\
152+ && [ "\$ {VIRTUAL_ENV-}" = "\$ {_PYENV_VH_VENV-}" ]; then
153+ return \$ ret
154+ fi
100155 if [ -n "\$ {VIRTUAL_ENV-}" ]; then
101156 eval "\$ (pyenv sh-activate --quiet || pyenv sh-deactivate --quiet || true)" || true
102157 else
103158 eval "\$ (pyenv sh-activate --quiet || true)" || true
104159 fi
160+ _PYENV_VH_PWD="\$ {PWD}"
161+ _PYENV_VH_VERSION="\$ {PYENV_VERSION-}"
162+ _PYENV_VH_LOCAL="\$ {pvh_local}"
163+ _PYENV_VH_GLOBAL="\$ {pvh_global}"
164+ _PYENV_VH_VENV="\$ {VIRTUAL_ENV-}"
105165 return \$ ret
106166};
107167typeset -g -a precmd_functions
0 commit comments