summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSorin Sbarnea <ssbarnea@users.noreply.github.com>2017-09-29 11:48:11 (GMT)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>2017-09-29 11:48:11 (GMT)
commit90f1d989594f3340c5ffaa2cf9cef1876ac6bb89 (patch)
tree379f5101baabeaed3ccd1306dc92fcbdaf8e993c
parent288d1daadaddf6ae35cf666138ba4b5d07449657 (diff)
downloadcpython-90f1d989594f3340c5ffaa2cf9cef1876ac6bb89.zip
cpython-90f1d989594f3340c5ffaa2cf9cef1876ac6bb89.tar.gz
cpython-90f1d989594f3340c5ffaa2cf9cef1876ac6bb89.tar.bz2
bpo-25351: avoid activate failure on strict shells (GH-3804)
-rw-r--r--Lib/venv/scripts/common/activate26
-rw-r--r--Misc/NEWS.d/next/Library/2017-09-28-23-10-51.bpo-25351.2JmFpF.rst1
2 files changed, 14 insertions, 13 deletions
diff --git a/Lib/venv/scripts/common/activate b/Lib/venv/scripts/common/activate
index c78a4ef..fff0765 100644
--- a/Lib/venv/scripts/common/activate
+++ b/Lib/venv/scripts/common/activate
@@ -3,13 +3,13 @@
deactivate () {
# reset old environment variables
- if [ -n "$_OLD_VIRTUAL_PATH" ] ; then
- PATH="$_OLD_VIRTUAL_PATH"
+ if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then
+ PATH="${_OLD_VIRTUAL_PATH:-}"
export PATH
unset _OLD_VIRTUAL_PATH
fi
- if [ -n "$_OLD_VIRTUAL_PYTHONHOME" ] ; then
- PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME"
+ if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then
+ PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}"
export PYTHONHOME
unset _OLD_VIRTUAL_PYTHONHOME
fi
@@ -17,12 +17,12 @@ deactivate () {
# This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands. Without forgetting
# 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
fi
- if [ -n "$_OLD_VIRTUAL_PS1" ] ; then
- PS1="$_OLD_VIRTUAL_PS1"
+ if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
+ PS1="${_OLD_VIRTUAL_PS1:-}"
export PS1
unset _OLD_VIRTUAL_PS1
fi
@@ -47,15 +47,15 @@ export PATH
# unset PYTHONHOME if set
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
# could use `if (set -u; : $PYTHONHOME) ;` in bash
-if [ -n "$PYTHONHOME" ] ; then
- _OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME"
+if [ -n "${PYTHONHOME:-}" ] ; then
+ _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}"
unset PYTHONHOME
fi
-if [ -z "$VIRTUAL_ENV_DISABLE_PROMPT" ] ; then
- _OLD_VIRTUAL_PS1="$PS1"
+if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
+ _OLD_VIRTUAL_PS1="${PS1:-}"
if [ "x__VENV_PROMPT__" != x ] ; then
- PS1="__VENV_PROMPT__$PS1"
+ PS1="__VENV_PROMPT__${PS1:-}"
else
if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then
# special case for Aspen magic directories
@@ -71,6 +71,6 @@ fi
# This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands. Without forgetting
# 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
fi
diff --git a/Misc/NEWS.d/next/Library/2017-09-28-23-10-51.bpo-25351.2JmFpF.rst b/Misc/NEWS.d/next/Library/2017-09-28-23-10-51.bpo-25351.2JmFpF.rst
new file mode 100644
index 0000000..f7afc25
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2017-09-28-23-10-51.bpo-25351.2JmFpF.rst
@@ -0,0 +1 @@
+Avoid venv activate failures with undefined variables