mirror of
https://github.com/pyenv/pyenv.git
synced 2024-11-21 20:47:00 -05:00
Add pyenv versions' option to skip envs for
pyenv-latest'
This commit is contained in:
parent
9248255f70
commit
9fe80f28e5
2 changed files with 36 additions and 13 deletions
|
@ -1,23 +1,24 @@
|
|||
#!/usr/bin/env bash
|
||||
# Summary: List all Python versions available to pyenv
|
||||
# Usage: pyenv versions [--bare] [--skip-aliases]
|
||||
# Usage: pyenv versions [--bare] [--skip-aliases] [--skip-envs]
|
||||
#
|
||||
# Lists all Python versions found in `$PYENV_ROOT/versions/*'.
|
||||
|
||||
set -e
|
||||
[ -n "$PYENV_DEBUG" ] && set -x
|
||||
|
||||
unset bare
|
||||
unset skip_aliases
|
||||
unset bare skip_aliases skip_envs
|
||||
# Provide pyenv completions
|
||||
for arg; do
|
||||
case "$arg" in
|
||||
--complete )
|
||||
echo --bare
|
||||
echo --skip-aliases
|
||||
echo --skip-envs
|
||||
exit ;;
|
||||
--bare ) bare=1 ;;
|
||||
--skip-aliases ) skip_aliases=1 ;;
|
||||
--skip-envs ) skip_envs=1 ;;
|
||||
* )
|
||||
pyenv-help --usage versions >&2
|
||||
exit 1
|
||||
|
@ -109,7 +110,7 @@ print_version() {
|
|||
if [[ -z "$bare" && -L "$path" ]]; then
|
||||
# Only resolve the link itself for printing, do not resolve further.
|
||||
# Doing otherwise would misinform the user of what the link contains.
|
||||
version_repr="$version --> $(resolve_link "$version")"
|
||||
version_repr="$version --> $(resolve_link "$path")"
|
||||
else
|
||||
version_repr="$version"
|
||||
fi
|
||||
|
@ -152,12 +153,14 @@ for path in "${versions_dir_entries[@]}"; do
|
|||
[ "${target%/*/envs/*}" == "$versions_dir" ] && continue
|
||||
fi
|
||||
print_version "${path##*/}" "$path"
|
||||
# virtual environments created by anaconda/miniconda
|
||||
for env_path in "${path}/envs/"*; do
|
||||
if [ -d "${env_path}" ]; then
|
||||
print_version "${env_path#${PYENV_ROOT}/versions/}" "${env_path}"
|
||||
fi
|
||||
done
|
||||
# virtual environments created by anaconda/miniconda/pyenv-virtualenv
|
||||
if [[ -z $skip_envs ]]; then
|
||||
for env_path in "${path}/envs/"*; do
|
||||
if [ -d "${env_path}" ]; then
|
||||
print_version "${env_path#${PYENV_ROOT}/versions/}" "${env_path}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
done
|
||||
shopt -u dotglob nullglob
|
||||
|
|
|
@ -66,18 +66,38 @@ OUT
|
|||
assert_success "3.3"
|
||||
}
|
||||
|
||||
@test "multiple versions" {
|
||||
@test "multiple versions and envs" {
|
||||
stub_system_python
|
||||
create_version "2.7.6"
|
||||
create_version "3.3.3"
|
||||
create_version "3.4.0"
|
||||
create_version "3.4.0/envs/foo"
|
||||
create_version "3.4.0/envs/bar"
|
||||
create_version "3.5.2"
|
||||
run pyenv-versions
|
||||
assert_success
|
||||
assert_output <<OUT
|
||||
* system (set by ${PYENV_ROOT}/version)
|
||||
2.7.6
|
||||
3.4.0
|
||||
3.4.0/envs/bar
|
||||
3.4.0/envs/foo
|
||||
3.5.2
|
||||
OUT
|
||||
}
|
||||
|
||||
@test "skips envs with --skip-envs" {
|
||||
create_version "3.3.3"
|
||||
create_version "3.4.0"
|
||||
create_version "3.4.0/envs/foo"
|
||||
create_version "3.4.0/envs/bar"
|
||||
create_version "3.5.0"
|
||||
|
||||
run pyenv-versions --skip-envs
|
||||
assert_success <<OUT
|
||||
* system (set by ${PYENV_ROOT}/version)
|
||||
3.3.3
|
||||
3.4.0
|
||||
3.5.0
|
||||
OUT
|
||||
}
|
||||
|
||||
|
@ -216,7 +236,7 @@ SH
|
|||
OUT
|
||||
}
|
||||
|
||||
@test "non-bare output resolves links" {
|
||||
@test "non-bare output shows symlink contents" {
|
||||
create_version "1.9.0"
|
||||
create_alias "link" "foo/bar"
|
||||
|
||||
|
|
Loading…
Reference in a new issue