mirror of
https://github.com/pyenv/pyenv.git
synced 2024-11-28 23:02:51 -05:00
f1a1f59c87
* Cleanup mocks logic * Add test for `:latest`
25 lines
812 B
Bash
25 lines
812 B
Bash
pyenv_install_resolve_latest() {
|
|
local DEFINITION_PREFIX DEFINITION_TYPE
|
|
local -a DEFINITION_CANDIDATES
|
|
local DEFINITION="$1"
|
|
|
|
DEFINITION_PREFIX="${DEFINITION%%:*}"
|
|
DEFINITION_TYPE="${DEFINITION_PREFIX%%-*}" # TODO: support non-CPython versions
|
|
if [[ "${DEFINITION}" != "${DEFINITION_PREFIX}" ]]; then
|
|
DEFINITION_CANDIDATES=(\
|
|
$(python-build --definitions | \
|
|
grep -F "${DEFINITION_PREFIX}" | \
|
|
grep "^${DEFINITION_TYPE}" | \
|
|
sed -E -e '/-dev$/d' -e '/-src$/d' -e '/(b|rc)[0-9]+$/d' | \
|
|
sort -t. -k1,1r -k 2,2nr -k 3,3nr \
|
|
|| true))
|
|
DEFINITION="${DEFINITION_CANDIDATES}"
|
|
fi
|
|
echo "$DEFINITION"
|
|
}
|
|
|
|
for i in ${!DEFINITIONS[*]}; do
|
|
DEFINITIONS[$i]="$(pyenv_install_resolve_latest "${DEFINITIONS[$i]}")"
|
|
done
|
|
|
|
unset pyenv_install_resolve_latest
|