mirror of
https://github.com/pyenv/pyenv.git
synced 2025-11-11 13:03:46 -05:00
Some checks failed
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.10) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.11) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.12) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.8) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.9) (push) Has been cancelled
Fixes use of version specifiers like `python-3.12`, which: - have an explicit `python-` prefix - are using a major version alias that has to be resolved to an exact version. Also simplified the conditional for the already working case, since it had two branches that were virtually identical.
56 lines
1.3 KiB
Bash
Executable File
56 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Summary: Show the current Python version
|
|
set -e
|
|
[ -n "$PYENV_DEBUG" ] && set -x
|
|
|
|
if [ -z "$PYENV_VERSION" ]; then
|
|
PYENV_VERSION_FILE="$(pyenv-version-file)"
|
|
PYENV_VERSION="$(pyenv-version-file-read "$PYENV_VERSION_FILE" || true)"
|
|
fi
|
|
|
|
OLDIFS="$IFS"
|
|
IFS=$'\n' scripts=(`pyenv-hooks version-name`)
|
|
IFS="$OLDIFS"
|
|
for script in "${scripts[@]}"; do
|
|
source "$script"
|
|
done
|
|
|
|
if [ -z "$PYENV_VERSION" ] || [ "$PYENV_VERSION" = "system" ]; then
|
|
echo "system"
|
|
exit
|
|
fi
|
|
|
|
version_exists() {
|
|
local version="$1"
|
|
[ -d "${PYENV_ROOT}/versions/${version}" ]
|
|
}
|
|
|
|
versions=()
|
|
OLDIFS="$IFS"
|
|
{ IFS=:
|
|
any_not_installed=0
|
|
for version in ${PYENV_VERSION}; do
|
|
# Remove the explicit 'python-' prefix from versions like 'python-3.12'.
|
|
normalised_version="${version#python-}"
|
|
if version_exists "${normalised_version}" || [ "$version" = "system" ]; then
|
|
versions=("${versions[@]}" "${normalised_version}")
|
|
elif resolved_version="$(pyenv-latest -b "${normalised_version}")"; then
|
|
versions=("${versions[@]}" "${resolved_version}")
|
|
else
|
|
echo "pyenv: version \`$version' is not installed (set by $(pyenv-version-origin))" >&2
|
|
any_not_installed=1
|
|
fi
|
|
done
|
|
}
|
|
IFS="$OLDIFS"
|
|
|
|
OLDIFS="$IFS"
|
|
{ IFS=:
|
|
echo "${versions[*]}"
|
|
}
|
|
IFS="$OLDIFS"
|
|
|
|
if [ "$any_not_installed" = 1 ]; then
|
|
exit 1
|
|
fi
|