https://github.com/python/cpython/commit/4eb14211a58bda35134caa40b1d36ccb0f16383b
commit: 4eb14211a58bda35134caa40b1d36ccb0f16383b
branch: 3.12
author: Vinay Sajip <[email protected]>
committer: vsajip <[email protected]>
date: 2025-02-28T09:23:45Z
summary:
[3.12] gh-112507: Detect Cygwin and MSYS with `uname` instead of `$OSTYPE`
(GH-112508) (GH-130674)
(cherry picked from commit d7b5f102319bb0389c5248e9ecf533eae4163424)
files:
M Lib/venv/scripts/common/activate
diff --git a/Lib/venv/scripts/common/activate b/Lib/venv/scripts/common/activate
index 74825877c38313..70673a265d41f8 100644
--- a/Lib/venv/scripts/common/activate
+++ b/Lib/venv/scripts/common/activate
@@ -37,19 +37,26 @@ deactivate () {
deactivate nondestructive
# on Windows, a path can contain colons and backslashes and has to be
converted:
-if [ "${OSTYPE:-}" = "cygwin" ] || [ "${OSTYPE:-}" = "msys" ] ; then
- # transform D:\path\to\venv to /d/path/to/venv on MSYS
- # and to /cygdrive/d/path/to/venv on Cygwin
- export VIRTUAL_ENV=$(cygpath __VENV_DIR__)
-else
- # use the path as-is
- export VIRTUAL_ENV=__VENV_DIR__
-fi
+case "$(uname)" in
+ CYGWIN*|MSYS*|MINGW*)
+ # transform D:\path\to\venv to /d/path/to/venv on MSYS and MINGW
+ # 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
@@ -60,10 +67,8 @@ fi
if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
_OLD_VIRTUAL_PS1="${PS1:-}"
- PS1=__VENV_PROMPT__"${PS1:-}"
+ PS1="("__VENV_PROMPT__") ${PS1:-}"
export PS1
- VIRTUAL_ENV_PROMPT=__VENV_PROMPT__
- export VIRTUAL_ENV_PROMPT
fi
# Call hash to forget past commands. Without forgetting
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]