Display the version of pyvenv if USE_PYVENV is set

This commit is contained in:
Yamashita Yuu
2014-01-23 14:51:56 +09:00
parent 39ce4e76fd
commit 4feb64e8d3
3 changed files with 63 additions and 14 deletions

View File

@@ -1,4 +1,4 @@
# pyenv-virtualenv (a.k.a. [python-virtualenv](https://github.com/yyuu/python-virtualenv))
# pyenv-virtualenv
[![Build Status](https://travis-ci.org/yyuu/pyenv-virtualenv.png)](https://travis-ci.org/yyuu/pyenv-virtualenv)

View File

@@ -103,8 +103,17 @@ http_get_wget() {
}
version() {
local version="$(venv --version 2>/dev/null || true)"
echo "pyenv-virtualenv ${PYENV_VIRTUALENV_VERSION} (virtualenv ${version:-unknown})"
detect_venv
local version
if [ -n "$USE_PYVENV" ]; then
version="$(pyenv-which pyvenv 2>/dev/null || true)"
version="${version#$(pyenv-root)/versions/}"
version="${version%/bin/pyvenv}"
echo "pyenv-virtualenv ${PYENV_VIRTUALENV_VERSION} (pyvenv ${version:-unknown})"
else
version="$(venv --version 2>/dev/null || true)"
echo "pyenv-virtualenv ${PYENV_VIRTUALENV_VERSION} (virtualenv ${version:-unknown})"
fi
}
usage() {
@@ -114,6 +123,19 @@ usage() {
[ -z "$1" ] || exit "$1"
}
detect_venv() {
if pyenv-which "virtualenv" 1>/dev/null 2>&1; then
HAS_VIRTUALENV=1
fi
if pyenv-which "pyvenv" 1>/dev/null 2>&1; then
HAS_PYVENV=1
fi
# Use pyvenv only if virtualenv is not installed and there is pyvenv
if [ -n "${HAS_PYVENV}" ] && [ -z "${HAS_VIRTUALENV}" ]; then
USE_PYVENV=1
fi
}
venv() {
local args=("$@")
if [ -n "${USE_PYVENV}" ]; then
@@ -305,17 +327,7 @@ VIRTUALENV_PATH="${PYENV_ROOT}/versions/${VIRTUALENV_NAME}"
unset HAS_VIRTUALENV
unset HAS_PYVENV
unset USE_PYVENV
if pyenv-which "virtualenv" 1>/dev/null 2>&1; then
HAS_VIRTUALENV=1
fi
if pyenv-which "pyvenv" 1>/dev/null 2>&1; then
HAS_PYVENV=1
fi
# Use pyvenv only if virtualenv is not installed and there is pyvenv
if [ -n "${HAS_PYVENV}" ] && [ -z "${HAS_VIRTUALENV}" ]; then
USE_PYVENV=1
fi
detect_venv
if [ -n "${USE_PYVENV}" ]; then
# Unset some arguments not supported by pyvenv

37
test/version.bats Normal file
View File

@@ -0,0 +1,37 @@
#!/usr/bin/env bats
load test_helper
setup() {
export PYENV_ROOT="${TMP}/pyenv"
export PYENV_VIRTUALENV_VERSION="20140110.1"
}
@test "display virtualenv version" {
stub pyenv-which "virtualenv : true"
stub pyenv-which "pyvenv : true"
stub pyenv-exec "virtualenv --version : echo \"1.11\""
run pyenv-virtualenv --version
unstub pyenv-which
unstub pyenv-exec
assert_success
assert_output "pyenv-virtualenv ${PYENV_VIRTUALENV_VERSION} (virtualenv 1.11)"
}
@test "display pyvenv version" {
stub pyenv-which "virtualenv : false"
stub pyenv-which "pyvenv : echo \"${PYENV_ROOT}/versions/3.3.3/bin/pyvenv\""
stub pyenv-which "pyvenv : echo \"${PYENV_ROOT}/versions/3.3.3/bin/pyvenv\""
stub pyenv-root "echo \"${PYENV_ROOT}\""
run pyenv-virtualenv --version
unstub pyenv-which
unstub pyenv-root
assert_success
assert_output "pyenv-virtualenv ${PYENV_VIRTUALENV_VERSION} (pyvenv 3.3.3)"
}