add pyenv push and pyenv pop to manage version stack

This commit is contained in:
Yamashita Yuu 2012-10-03 12:19:42 +09:00
parent aede700619
commit e8ad78f837
3 changed files with 60 additions and 0 deletions

View file

@ -199,6 +199,20 @@ within these Python versions are searched by specified order.
$ pyenv which python $ pyenv which python
/home/yyuu/.pyenv/versions/2.7.3/bin/python /home/yyuu/.pyenv/versions/2.7.3/bin/python
You can manage your version stack by `pyenv push` and `pyenv pop`.
$ pyenv global
2.7.3
3.2.3
$ pyenv push 3.3.0
$ pyenv global
2.7.3
3.2.3
3.3.0
$ pyenv pop
2.7.3
3.2.3
### <a name="section_3.2"></a> 3.2 pyenv local ### <a name="section_3.2"></a> 3.2 pyenv local
Sets a local per-project Python version by writing the version name to Sets a local per-project Python version by writing the version name to
@ -228,6 +242,20 @@ within these Python versions are searched by specified order.
$ pyenv which python $ pyenv which python
/home/yyuu/.pyenv/versions/2.7.3/bin/python /home/yyuu/.pyenv/versions/2.7.3/bin/python
You can manage your version stack by `pyenv push` and `pyenv pop`.
$ pyenv local
2.7.3
3.2.3
$ pyenv push 3.3.0
$ pyenv local
2.7.3
3.2.3
3.3.0
$ pyenv pop
2.7.3
3.2.3
### <a name="section_3.3"></a> 3.3 pyenv shell ### <a name="section_3.3"></a> 3.3 pyenv shell
Sets a shell-specific Python version by setting the `PYENV_VERSION` Sets a shell-specific Python version by setting the `PYENV_VERSION`

18
libexec/pyenv-sh-pop Executable file
View file

@ -0,0 +1,18 @@
#!/usr/bin/env bash
set -e
[ -n "$PYENV_DEBUG" ] && set -x
IFS=: versions=($(pyenv-version-name))
length="${#versions[@]}"
PYENV_VERSION_NAMES=()
for ((i=0; i<length-1; i++)); do
PYENV_VERSION_NAMES=("${PYENV_VERSION_NAMES[@]}" "${versions[$i]}")
done
if [ -n "$PYENV_VERSION" ]; then
IFS=: PYENV_VERSION="${PYENV_VERSION_NAMES[*]}"
echo "export PYENV_VERSION=\"${PYENV_VERSION}\""
else
pyenv-version-file-write "$(pyenv-version-file)" "${PYENV_VERSION_NAMES[@]}"
fi

14
libexec/pyenv-sh-push Executable file
View file

@ -0,0 +1,14 @@
#!/usr/bin/env bash
set -e
[ -n "$PYENV_DEBUG" ] && set -x
IFS=: PYENV_VERSION_NAMES=($(pyenv-version-name))
versions=("$@")
PYENV_VERSION_NAMES=("${PYENV_VERSION_NAMES[@]}" "${versions[@]}")
if [ -n "$PYENV_VERSION" ]; then
IFS=: PYENV_VERSION="${PYENV_VERSION_NAMES[*]}"
echo "export PYENV_VERSION=\"${PYENV_VERSION}\""
else
pyenv-version-file-write "$(pyenv-version-file)" "${PYENV_VERSION_NAMES[@]}"
fi