[3.6] bpo-25351: avoid activate failure on strict shells (GH-3804) (#3820)

(cherry picked from commit 90f1d98959)
This commit is contained in:
Miss Islington (bot) 2017-09-29 05:34:43 -07:00 committed by Victor Stinner
parent 641494ec31
commit a5610e0746
2 changed files with 14 additions and 13 deletions

View file

@ -3,13 +3,13 @@
deactivate () { deactivate () {
# reset old environment variables # reset old environment variables
if [ -n "$_OLD_VIRTUAL_PATH" ] ; then if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then
PATH="$_OLD_VIRTUAL_PATH" PATH="${_OLD_VIRTUAL_PATH:-}"
export PATH export PATH
unset _OLD_VIRTUAL_PATH unset _OLD_VIRTUAL_PATH
fi fi
if [ -n "$_OLD_VIRTUAL_PYTHONHOME" ] ; then if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then
PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME" PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}"
export PYTHONHOME export PYTHONHOME
unset _OLD_VIRTUAL_PYTHONHOME unset _OLD_VIRTUAL_PYTHONHOME
fi fi
@ -17,12 +17,12 @@ deactivate () {
# This should detect bash and zsh, which have a hash command that must # This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands. Without forgetting # be called to get it to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected # past commands the $PATH changes we made may not be respected
if [ -n "$BASH" -o -n "$ZSH_VERSION" ] ; then if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
hash -r hash -r
fi fi
if [ -n "$_OLD_VIRTUAL_PS1" ] ; then if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
PS1="$_OLD_VIRTUAL_PS1" PS1="${_OLD_VIRTUAL_PS1:-}"
export PS1 export PS1
unset _OLD_VIRTUAL_PS1 unset _OLD_VIRTUAL_PS1
fi fi
@ -47,15 +47,15 @@ export PATH
# unset PYTHONHOME if set # unset PYTHONHOME if set
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway) # this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
# could use `if (set -u; : $PYTHONHOME) ;` in bash # could use `if (set -u; : $PYTHONHOME) ;` in bash
if [ -n "$PYTHONHOME" ] ; then if [ -n "${PYTHONHOME:-}" ] ; then
_OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME" _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}"
unset PYTHONHOME unset PYTHONHOME
fi fi
if [ -z "$VIRTUAL_ENV_DISABLE_PROMPT" ] ; then if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
_OLD_VIRTUAL_PS1="$PS1" _OLD_VIRTUAL_PS1="${PS1:-}"
if [ "x__VENV_PROMPT__" != x ] ; then if [ "x__VENV_PROMPT__" != x ] ; then
PS1="__VENV_PROMPT__$PS1" PS1="__VENV_PROMPT__${PS1:-}"
else else
if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then
# special case for Aspen magic directories # special case for Aspen magic directories
@ -71,6 +71,6 @@ fi
# This should detect bash and zsh, which have a hash command that must # This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands. Without forgetting # be called to get it to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected # past commands the $PATH changes we made may not be respected
if [ -n "$BASH" -o -n "$ZSH_VERSION" ] ; then if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
hash -r hash -r
fi fi

View file

@ -0,0 +1 @@
Avoid venv activate failures with undefined variables