mirror of
https://github.com/pyenv/pyenv-virtualenv.git
synced 2025-11-10 04:23:53 -05:00
Fix errors when set -u is set in the user's shell (#350)
This commit is contained in:
@@ -129,7 +129,7 @@ esac
|
|||||||
if [[ "$shell" != "fish" ]]; then
|
if [[ "$shell" != "fish" ]]; then
|
||||||
cat <<EOS
|
cat <<EOS
|
||||||
local ret=\$?
|
local ret=\$?
|
||||||
if [ -n "\$VIRTUAL_ENV" ]; then
|
if [ -n "\${VIRTUAL_ENV-}" ]; then
|
||||||
eval "\$(pyenv sh-activate --quiet || pyenv sh-deactivate --quiet || true)" || true
|
eval "\$(pyenv sh-activate --quiet || pyenv sh-deactivate --quiet || true)" || true
|
||||||
else
|
else
|
||||||
eval "\$(pyenv sh-activate --quiet || true)" || true
|
eval "\$(pyenv sh-activate --quiet || true)" || true
|
||||||
@@ -141,8 +141,8 @@ EOS
|
|||||||
case "$shell" in
|
case "$shell" in
|
||||||
bash )
|
bash )
|
||||||
cat <<EOS
|
cat <<EOS
|
||||||
if ! [[ "\$PROMPT_COMMAND" =~ _pyenv_virtualenv_hook ]]; then
|
if ! [[ "\${PROMPT_COMMAND-}" =~ _pyenv_virtualenv_hook ]]; then
|
||||||
PROMPT_COMMAND="_pyenv_virtualenv_hook;\$PROMPT_COMMAND";
|
PROMPT_COMMAND="_pyenv_virtualenv_hook;\${PROMPT_COMMAND-}"
|
||||||
fi
|
fi
|
||||||
EOS
|
EOS
|
||||||
;;
|
;;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ load test_helper
|
|||||||
unset PYENV_SHELL
|
unset PYENV_SHELL
|
||||||
SHELL=/bin/false run pyenv-virtualenv-init -
|
SHELL=/bin/false run pyenv-virtualenv-init -
|
||||||
assert_success
|
assert_success
|
||||||
assert_output_contains ' PROMPT_COMMAND="_pyenv_virtualenv_hook;$PROMPT_COMMAND";'
|
assert_output_contains ' PROMPT_COMMAND="_pyenv_virtualenv_hook;${PROMPT_COMMAND-}"'
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "detect parent shell from script (sh)" {
|
@test "detect parent shell from script (sh)" {
|
||||||
@@ -15,7 +15,7 @@ load test_helper
|
|||||||
chmod +x ${TMP}/script.sh
|
chmod +x ${TMP}/script.sh
|
||||||
run ${TMP}/script.sh
|
run ${TMP}/script.sh
|
||||||
assert_success
|
assert_success
|
||||||
assert_output_contains_not ' PROMPT_COMMAND="_pyenv_virtualenv_hook;$PROMPT_COMMAND";'
|
assert_output_contains_not ' PROMPT_COMMAND="_pyenv_virtualenv_hook;${PROMPT_COMMAND-}"'
|
||||||
rm -f "${TMP}/script.sh"
|
rm -f "${TMP}/script.sh"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ load test_helper
|
|||||||
chmod +x ${TMP}/script.sh
|
chmod +x ${TMP}/script.sh
|
||||||
run ${TMP}/script.sh
|
run ${TMP}/script.sh
|
||||||
assert_success
|
assert_success
|
||||||
assert_output_contains ' PROMPT_COMMAND="_pyenv_virtualenv_hook;$PROMPT_COMMAND";'
|
assert_output_contains ' PROMPT_COMMAND="_pyenv_virtualenv_hook;${PROMPT_COMMAND-}"'
|
||||||
rm -f "${TMP}/script.sh"
|
rm -f "${TMP}/script.sh"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -54,15 +54,15 @@ export PATH="${TMP}/pyenv/plugins/pyenv-virtualenv/shims:\${PATH}";
|
|||||||
export PYENV_VIRTUALENV_INIT=1;
|
export PYENV_VIRTUALENV_INIT=1;
|
||||||
_pyenv_virtualenv_hook() {
|
_pyenv_virtualenv_hook() {
|
||||||
local ret=\$?
|
local ret=\$?
|
||||||
if [ -n "\$VIRTUAL_ENV" ]; then
|
if [ -n "\${VIRTUAL_ENV-}" ]; then
|
||||||
eval "\$(pyenv sh-activate --quiet || pyenv sh-deactivate --quiet || true)" || true
|
eval "\$(pyenv sh-activate --quiet || pyenv sh-deactivate --quiet || true)" || true
|
||||||
else
|
else
|
||||||
eval "\$(pyenv sh-activate --quiet || true)" || true
|
eval "\$(pyenv sh-activate --quiet || true)" || true
|
||||||
fi
|
fi
|
||||||
return \$ret
|
return \$ret
|
||||||
};
|
};
|
||||||
if ! [[ "\$PROMPT_COMMAND" =~ _pyenv_virtualenv_hook ]]; then
|
if ! [[ "\${PROMPT_COMMAND-}" =~ _pyenv_virtualenv_hook ]]; then
|
||||||
PROMPT_COMMAND="_pyenv_virtualenv_hook;\$PROMPT_COMMAND";
|
PROMPT_COMMAND="_pyenv_virtualenv_hook;\${PROMPT_COMMAND-}"
|
||||||
fi
|
fi
|
||||||
EOS
|
EOS
|
||||||
}
|
}
|
||||||
@@ -95,7 +95,7 @@ export PATH="${TMP}/pyenv/plugins/pyenv-virtualenv/shims:\${PATH}";
|
|||||||
export PYENV_VIRTUALENV_INIT=1;
|
export PYENV_VIRTUALENV_INIT=1;
|
||||||
_pyenv_virtualenv_hook() {
|
_pyenv_virtualenv_hook() {
|
||||||
local ret=\$?
|
local ret=\$?
|
||||||
if [ -n "\$VIRTUAL_ENV" ]; then
|
if [ -n "\${VIRTUAL_ENV-}" ]; then
|
||||||
eval "\$(pyenv sh-activate --quiet || pyenv sh-deactivate --quiet || true)" || true
|
eval "\$(pyenv sh-activate --quiet || pyenv sh-deactivate --quiet || true)" || true
|
||||||
else
|
else
|
||||||
eval "\$(pyenv sh-activate --quiet || true)" || true
|
eval "\$(pyenv sh-activate --quiet || true)" || true
|
||||||
|
|||||||
Reference in New Issue
Block a user