mirror of
https://github.com/pyenv/pyenv.git
synced 2024-12-22 16:43:27 +00:00
feat: support (skip) commented lines in version-file
Sometimes it is convenient to be able to temporarily disable something in a version-file. Because these files often aren't necessarily tracked in a SCM, especially when working with virtualenvs, the SCM diffs won't help with showing removed lines which are currently the only way to disable something.
This commit is contained in:
parent
c010935abd
commit
641916270b
3 changed files with 14 additions and 1 deletions
|
@ -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
|
||||
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.
|
||||
Lines starting with a `#` are ignored.
|
||||
|
||||
### Locating the Python Installation
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ if [ -e "$VERSION_FILE" ]; then
|
|||
# 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.
|
||||
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[@]}")
|
||||
|
||||
if [ -n "$versions" ]; then
|
||||
|
|
|
@ -70,3 +70,15 @@ IN
|
|||
run pyenv-version-file-read my-version
|
||||
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"
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue