mirror of
https://github.com/python/cpython.git
synced 2025-09-22 00:12:56 +00:00

Update comments about what running hash -r does The old comment said "hash -r" forgets "past commands." However, the documentation for "hash" states that it forgets past locations. The old comment was, in my opinion, confusing. This is because it could be interpreted to mean it does something to the command history (HISTORY/HISTFILE etc) vs the cache of locations.
76 lines
2.1 KiB
Text
76 lines
2.1 KiB
Text
# This file must be used with "source bin/activate" *from bash*
|
|
# You cannot run it directly
|
|
|
|
deactivate () {
|
|
# reset old environment variables
|
|
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:-}"
|
|
export PYTHONHOME
|
|
unset _OLD_VIRTUAL_PYTHONHOME
|
|
fi
|
|
|
|
# Call hash to forget past locations. Without forgetting
|
|
# past locations the $PATH changes we made may not be respected.
|
|
# See "man bash" for more details. hash is usually a builtin of your shell
|
|
hash -r 2> /dev/null
|
|
|
|
if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
|
|
PS1="${_OLD_VIRTUAL_PS1:-}"
|
|
export PS1
|
|
unset _OLD_VIRTUAL_PS1
|
|
fi
|
|
|
|
unset VIRTUAL_ENV
|
|
unset VIRTUAL_ENV_PROMPT
|
|
if [ ! "${1:-}" = "nondestructive" ] ; then
|
|
# Self destruct!
|
|
unset -f deactivate
|
|
fi
|
|
}
|
|
|
|
# unset irrelevant variables
|
|
deactivate nondestructive
|
|
|
|
# on Windows, a path can contain colons and backslashes and has to be converted:
|
|
case "$(uname)" in
|
|
CYGWIN*|MSYS*)
|
|
# transform D:\path\to\venv to /d/path/to/venv on MSYS
|
|
# and to /cygdrive/d/path/to/venv on Cygwin
|
|
VIRTUAL_ENV=$(cygpath "__VENV_DIR__")
|
|
export VIRTUAL_ENV
|
|
;;
|
|
*)
|
|
# use the path as-is
|
|
export VIRTUAL_ENV="__VENV_DIR__"
|
|
;;
|
|
esac
|
|
|
|
_OLD_VIRTUAL_PATH="$PATH"
|
|
PATH="$VIRTUAL_ENV/__VENV_BIN_NAME__:$PATH"
|
|
export PATH
|
|
|
|
VIRTUAL_ENV_PROMPT="__VENV_PROMPT__"
|
|
export VIRTUAL_ENV_PROMPT
|
|
|
|
# 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:-}"
|
|
unset PYTHONHOME
|
|
fi
|
|
|
|
if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
|
|
_OLD_VIRTUAL_PS1="${PS1:-}"
|
|
PS1="(__VENV_PROMPT__) ${PS1:-}"
|
|
export PS1
|
|
fi
|
|
|
|
# Call hash to forget past commands. Without forgetting
|
|
# past commands the $PATH changes we made may not be respected
|
|
hash -r 2> /dev/null
|