1 Commits

Author SHA1 Message Date
Yamashita Yuu
7e8223eac1 Fix issues with manual activation of virtual environments (#34) 2014-07-04 15:44:55 +09:00
6 changed files with 38 additions and 24 deletions

View File

@@ -78,13 +78,15 @@ case "$shell" in
fish ) fish )
cat <<EOS cat <<EOS
set -e PYENV_DEACTIVATE; set -e PYENV_DEACTIVATE;
. "$(pyenv-prefix "${versions}")/bin/activate.fish"; setenv PYENV_ACTIVATE "$(pyenv-prefix "${versions}")";
. "\${PYENV_ACTIVATE}/bin/activate.fish";
EOS EOS
;; ;;
* ) * )
cat <<EOS cat <<EOS
unset PYENV_DEACTIVATE; unset PYENV_DEACTIVATE;
source "$(pyenv-prefix "${versions}")/bin/activate"; export PYENV_ACTIVATE="$(pyenv-prefix "${versions}")";
source "\${PYENV_ACTIVATE}/bin/activate";
EOS EOS
;; ;;
esac esac

View File

@@ -14,7 +14,8 @@ case "$shell" in
fish ) fish )
cat <<EOS cat <<EOS
if functions -q deactivate if functions -q deactivate
setenv PYENV_DEACTIVATE "\$VIRTUAL_ENV"; setenv PYENV_DEACTIVATE "\$PYENV_ACTIVATE";
set -e PYENV_ACTIVATE;
deactivate; deactivate;
end; end;
EOS EOS
@@ -22,7 +23,8 @@ EOS
* ) * )
cat <<EOS cat <<EOS
if declare -f deactivate 1>/dev/null 2>&1; then if declare -f deactivate 1>/dev/null 2>&1; then
export PYENV_DEACTIVATE="\$VIRTUAL_ENV"; export PYENV_DEACTIVATE="\$PYENV_ACTIVATE";
unset PYENV_ACTIVATE;
deactivate; deactivate;
fi; fi;
EOS EOS

View File

@@ -75,12 +75,12 @@ case "$shell" in
fish ) fish )
cat <<EOS cat <<EOS
function _pyenv_virtualenv_hook --on-event fish_prompt; function _pyenv_virtualenv_hook --on-event fish_prompt;
if [ -n "\$VIRTUAL_ENV" ] if [ -n "\$PYENV_ACTIVATE" ]
if [ (pyenv version-name) = "system" ] if [ (pyenv version-name) = "system" ]
eval (pyenv sh-deactivate); or true eval (pyenv sh-deactivate); or true
return 0 return 0
end end
if [ "\$VIRTUAL_ENV" != (pyenv prefix) ] if [ "\$PYENV_ACTIVATE" != (pyenv prefix) ]
eval (pyenv sh-deactivate); or true eval (pyenv sh-deactivate); or true
eval (pyenv sh-activate 2>/dev/null); or true eval (pyenv sh-activate 2>/dev/null); or true
end end
@@ -106,12 +106,12 @@ esac
if [[ "$shell" != "fish" ]]; then if [[ "$shell" != "fish" ]]; then
cat <<EOS cat <<EOS
if [ -n "\$VIRTUAL_ENV" ]; then if [ -n "\$PYENV_ACTIVATE" ]; then
if [ "x\`pyenv version-name\`" = "xsystem" ]; then if [ "x\`pyenv version-name\`" = "xsystem" ]; then
pyenv deactivate || true pyenv deactivate || true
return 0 return 0
fi fi
if [ "x\$VIRTUAL_ENV" != "x\`pyenv prefix\`" ]; then if [ "x\$PYENV_ACTIVATE" != "x\`pyenv prefix\`" ]; then
pyenv deactivate || true pyenv deactivate || true
pyenv activate 2>/dev/null || true pyenv activate 2>/dev/null || true
fi fi

View File

@@ -23,7 +23,8 @@ setup() {
assert_success assert_success
assert_output <<EOS assert_output <<EOS
unset PYENV_DEACTIVATE; unset PYENV_DEACTIVATE;
source "${PYENV_ROOT}/versions/venv/bin/activate"; export PYENV_ACTIVATE="${PYENV_ROOT}/versions/venv";
source "\${PYENV_ACTIVATE}/bin/activate";
EOS EOS
} }
@@ -44,7 +45,8 @@ EOS
assert_output <<EOS assert_output <<EOS
pyenv shell "venv"; pyenv shell "venv";
unset PYENV_DEACTIVATE; unset PYENV_DEACTIVATE;
source "${PYENV_ROOT}/versions/venv/bin/activate"; export PYENV_ACTIVATE="${PYENV_ROOT}/versions/venv";
source "\${PYENV_ACTIVATE}/bin/activate";
EOS EOS
} }
@@ -64,7 +66,8 @@ EOS
assert_success assert_success
assert_output <<EOS assert_output <<EOS
set -e PYENV_DEACTIVATE; set -e PYENV_DEACTIVATE;
. "${PYENV_ROOT}/versions/venv/bin/activate.fish"; setenv PYENV_ACTIVATE "${PYENV_ROOT}/versions/venv";
. "\${PYENV_ACTIVATE}/bin/activate.fish";
EOS EOS
} }
@@ -85,7 +88,8 @@ EOS
assert_output <<EOS assert_output <<EOS
pyenv shell "venv"; pyenv shell "venv";
set -e PYENV_DEACTIVATE; set -e PYENV_DEACTIVATE;
. "${PYENV_ROOT}/versions/venv/bin/activate.fish"; setenv PYENV_ACTIVATE "${PYENV_ROOT}/versions/venv";
. "\${PYENV_ACTIVATE}/bin/activate.fish";
EOS EOS
} }
@@ -104,7 +108,8 @@ EOS
assert_output <<EOS assert_output <<EOS
pyenv shell "venv27"; pyenv shell "venv27";
unset PYENV_DEACTIVATE; unset PYENV_DEACTIVATE;
source "${PYENV_ROOT}/versions/venv27/bin/activate"; export PYENV_ACTIVATE="${PYENV_ROOT}/versions/venv27";
source "\${PYENV_ACTIVATE}/bin/activate";
EOS EOS
} }
@@ -123,7 +128,8 @@ EOS
assert_output <<EOS assert_output <<EOS
pyenv shell "venv27"; pyenv shell "venv27";
unset PYENV_DEACTIVATE; unset PYENV_DEACTIVATE;
source "${PYENV_ROOT}/versions/venv27/bin/activate"; export PYENV_ACTIVATE="${PYENV_ROOT}/versions/venv27";
source "\${PYENV_ACTIVATE}/bin/activate";
EOS EOS
} }

View File

@@ -14,7 +14,8 @@ setup() {
assert_success assert_success
assert_output <<EOS assert_output <<EOS
if declare -f deactivate 1>/dev/null 2>&1; then if declare -f deactivate 1>/dev/null 2>&1; then
export PYENV_DEACTIVATE="\$VIRTUAL_ENV"; export PYENV_DEACTIVATE="\$PYENV_ACTIVATE";
unset PYENV_ACTIVATE;
deactivate; deactivate;
fi; fi;
EOS EOS
@@ -28,7 +29,8 @@ EOS
assert_success assert_success
assert_output <<EOS assert_output <<EOS
if declare -f deactivate 1>/dev/null 2>&1; then if declare -f deactivate 1>/dev/null 2>&1; then
export PYENV_DEACTIVATE="\$VIRTUAL_ENV"; export PYENV_DEACTIVATE="\$PYENV_ACTIVATE";
unset PYENV_ACTIVATE;
deactivate; deactivate;
fi; fi;
pyenv shell --unset; pyenv shell --unset;
@@ -43,7 +45,8 @@ EOS
assert_success assert_success
assert_output <<EOS assert_output <<EOS
if functions -q deactivate if functions -q deactivate
setenv PYENV_DEACTIVATE "\$VIRTUAL_ENV"; setenv PYENV_DEACTIVATE "\$PYENV_ACTIVATE";
set -e PYENV_ACTIVATE;
deactivate; deactivate;
end; end;
EOS EOS
@@ -57,7 +60,8 @@ EOS
assert_success assert_success
assert_output <<EOS assert_output <<EOS
if functions -q deactivate if functions -q deactivate
setenv PYENV_DEACTIVATE "\$VIRTUAL_ENV"; setenv PYENV_DEACTIVATE "\$PYENV_ACTIVATE";
set -e PYENV_ACTIVATE;
deactivate; deactivate;
end; end;
pyenv shell --unset; pyenv shell --unset;

View File

@@ -31,12 +31,12 @@ load test_helper
assert_output <<EOS assert_output <<EOS
export PYENV_VIRTUALENV_INIT=1; export PYENV_VIRTUALENV_INIT=1;
_pyenv_virtualenv_hook() { _pyenv_virtualenv_hook() {
if [ -n "\$VIRTUAL_ENV" ]; then if [ -n "\$PYENV_ACTIVATE" ]; then
if [ "x\`pyenv version-name\`" = "xsystem" ]; then if [ "x\`pyenv version-name\`" = "xsystem" ]; then
pyenv deactivate || true pyenv deactivate || true
return 0 return 0
fi fi
if [ "x\$VIRTUAL_ENV" != "x\`pyenv prefix\`" ]; then if [ "x\$PYENV_ACTIVATE" != "x\`pyenv prefix\`" ]; then
pyenv deactivate || true pyenv deactivate || true
pyenv activate 2>/dev/null || true pyenv activate 2>/dev/null || true
fi fi
@@ -58,12 +58,12 @@ EOS
assert_output <<EOS assert_output <<EOS
setenv PYENV_VIRTUALENV_INIT 1; setenv PYENV_VIRTUALENV_INIT 1;
function _pyenv_virtualenv_hook --on-event fish_prompt; function _pyenv_virtualenv_hook --on-event fish_prompt;
if [ -n "\$VIRTUAL_ENV" ] if [ -n "\$PYENV_ACTIVATE" ]
if [ (pyenv version-name) = "system" ] if [ (pyenv version-name) = "system" ]
eval (pyenv sh-deactivate); or true eval (pyenv sh-deactivate); or true
return 0 return 0
end end
if [ "\$VIRTUAL_ENV" != (pyenv prefix) ] if [ "\$PYENV_ACTIVATE" != (pyenv prefix) ]
eval (pyenv sh-deactivate); or true eval (pyenv sh-deactivate); or true
eval (pyenv sh-activate 2>/dev/null); or true eval (pyenv sh-activate 2>/dev/null); or true
end end
@@ -82,12 +82,12 @@ EOS
assert_output <<EOS assert_output <<EOS
export PYENV_VIRTUALENV_INIT=1; export PYENV_VIRTUALENV_INIT=1;
_pyenv_virtualenv_hook() { _pyenv_virtualenv_hook() {
if [ -n "\$VIRTUAL_ENV" ]; then if [ -n "\$PYENV_ACTIVATE" ]; then
if [ "x\`pyenv version-name\`" = "xsystem" ]; then if [ "x\`pyenv version-name\`" = "xsystem" ]; then
pyenv deactivate || true pyenv deactivate || true
return 0 return 0
fi fi
if [ "x\$VIRTUAL_ENV" != "x\`pyenv prefix\`" ]; then if [ "x\$PYENV_ACTIVATE" != "x\`pyenv prefix\`" ]; then
pyenv deactivate || true pyenv deactivate || true
pyenv activate 2>/dev/null || true pyenv activate 2>/dev/null || true
fi fi