Merge pull request #1866 from scop/feat/python-version-comments

feat: support (skip) commented lines in version-file
This commit is contained in:
Anton Petrov 2021-04-15 21:00:03 +03:00 committed by GitHub
commit 58e3a0ce18
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 1 deletions

View file

@ -136,6 +136,7 @@ executable path to each of these using `pyenv which`, e.g. `pyenv which python2.
(should display `$(pyenv root)/versions/2.5/bin/python2.5`), or `pyenv which (should display `$(pyenv root)/versions/2.5/bin/python2.5`), or `pyenv which
python3.4` (should display path to system Python3). You can also specify multiple python3.4` (should display path to system Python3). You can also specify multiple
versions in a `.python-version` file, separated by newlines or any whitespace. versions in a `.python-version` file, separated by newlines or any whitespace.
Lines starting with a `#` are ignored.
### Locating the Python Installation ### Locating the Python Installation

View file

@ -9,7 +9,7 @@ if [ -e "$VERSION_FILE" ]; then
# Read the first non-whitespace word from the specified version file. # Read the first non-whitespace word from the specified version file.
# Be careful not to load it whole in case there's something crazy in it. # Be careful not to load it whole in case there's something crazy in it.
IFS="${IFS}"$'\r' IFS="${IFS}"$'\r'
words=($(cut -b 1-1024 "$VERSION_FILE" | sed 's/[[:space:]]*\([^[:space:]^[:space:]]*\).*/\1/')) words=($(cut -b 1-1024 "$VERSION_FILE" | sed -n 's/^[[:space:]]*\([^[:space:]#][^[:space:]]*\).*/\1/p'))
versions=("${words[@]}") versions=("${words[@]}")
if [ -n "$versions" ]; then if [ -n "$versions" ]; then

View file

@ -70,3 +70,15 @@ IN
run pyenv-version-file-read my-version run pyenv-version-file-read my-version
assert_success "3.3.5" assert_success "3.3.5"
} }
@test "skips comment lines" {
cat > my-version <<IN
3.9.3
3.8.9
# 3.4.0
#3.3.7
2.7.16
IN
run pyenv-version-file-read my-version
assert_success "3.9.3:3.8.9:2.7.16"
}