mirror of
https://github.com/pyenv/pyenv-virtualenv.git
synced 2025-11-17 16:03:42 -05:00
Basically / should not be allowed as a part of name of virtualenv
This commit is contained in:
@@ -261,12 +261,16 @@ if [[ "${#ARGUMENTS[@]}" == 0 ]]; then
|
||||
exit 1
|
||||
elif [[ "${#ARGUMENTS[@]}" == 1 ]]; then
|
||||
# If only one argument given, use current version as source version
|
||||
VERSION_NAME="$(pyenv-version-name)"
|
||||
OLDIFS="${IFS}"
|
||||
IFS=:
|
||||
VERSION_NAMES=($(pyenv-version-name))
|
||||
IFS="${OLDIFS}"
|
||||
VERSION_NAME="${VERSION_NAMES}"
|
||||
VIRTUALENV_NAME="${ARGUMENTS[0]}"
|
||||
else
|
||||
# Otherwise, use former as source version, and latter as virtualenv version
|
||||
VERSION_NAME="${ARGUMENTS[0]}"
|
||||
VIRTUALENV_NAME="${ARGUMENTS[1]##*/}"
|
||||
VIRTUALENV_NAME="${ARGUMENTS[1]}"
|
||||
fi
|
||||
|
||||
if [ -z "${VERSION_NAME}" ] || [ -z "${VIRTUALENV_NAME}" ]; then
|
||||
@@ -283,6 +287,11 @@ if [ "$VIRTUALENV_NAME" != "${VIRTUALENV_NAME%[[:space:]]*}" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "${VIRTUALENV_NAME}" != "${VIRTUALENV_NAME%/*}" ] && [[ "${VIRTUALENV_NAME}" != "${VERSION_NAME%%/*}/envs/${VIRTUALENV_NAME##*/}" ]] ; then
|
||||
echo "pyenv-virtualenv: no slash allowed in virtualenv name." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Set VERSION_NAME as default version in this script
|
||||
export PYENV_VERSION="${VERSION_NAME}"
|
||||
|
||||
@@ -305,14 +314,14 @@ fi
|
||||
|
||||
# Not create `system/envs` directory even if source version is `system`
|
||||
if [[ "${VERSION_NAME%/envs/*}" == "system" ]]; then
|
||||
VERSION_NAME="${VIRTUALENV_NAME}"
|
||||
VIRTUALENV_NAME="${VIRTUALENV_NAME##*/}"
|
||||
else
|
||||
VERSION_NAME="${VERSION_NAME}/envs/${VIRTUALENV_NAME}"
|
||||
VIRTUALENV_NAME="${VERSION_NAME}/envs/${VIRTUALENV_NAME##*/}"
|
||||
fi
|
||||
|
||||
VIRTUALENV_PATH="${PYENV_ROOT}/versions/${VERSION_NAME}"
|
||||
VIRTUALENV_PATH="${PYENV_ROOT}/versions/${VIRTUALENV_NAME}"
|
||||
if [[ "${VIRTUALENV_PATH}" != "${VIRTUALENV_PATH%/envs/*}" ]]; then
|
||||
COMPAT_VIRTUALENV_PATH="${PYENV_ROOT}/versions/${VIRTUALENV_NAME}"
|
||||
COMPAT_VIRTUALENV_PATH="${PYENV_ROOT}/versions/${VIRTUALENV_NAME##*/}"
|
||||
fi
|
||||
|
||||
if [ -n "${COMPAT_VIRTUALENV_PATH}" ]; then
|
||||
@@ -427,7 +436,7 @@ if [ -d "${VIRTUALENV_PATH}/bin" ]; then
|
||||
fi
|
||||
|
||||
if [ -n "$UPGRADE" ]; then
|
||||
PYENV_VERSION="${VERSION_NAME}" prepare_requirements
|
||||
PYENV_VERSION="${VIRTUALENV_NAME}" prepare_requirements
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -455,10 +464,10 @@ if [ -d "${VIRTUALENV_PATH}" ] && [ -n "${COMPAT_VIRTUALENV_PATH}" ]; then
|
||||
fi
|
||||
|
||||
## Install setuptools and pip.
|
||||
PYENV_VERSION="${VERSION_NAME}" build_package_ensurepip
|
||||
PYENV_VERSION="${VIRTUALENV_NAME}" build_package_ensurepip
|
||||
|
||||
## Migrate previously installed packages from requirements.txt.
|
||||
PYENV_VERSION="${VERSION_NAME}" install_requirements || true
|
||||
PYENV_VERSION="${VIRTUALENV_NAME}" install_requirements || true
|
||||
|
||||
# Execute `after_virtualenv` hooks.
|
||||
for hook in "${after_hooks[@]}"; do eval "$hook"; done
|
||||
|
||||
Reference in New Issue
Block a user