From bf7e9ba59afe5df24e21cf2e6100420dd3e8af89 Mon Sep 17 00:00:00 2001 From: "Yamashita, Yuu" Date: Fri, 6 Nov 2015 17:27:50 +0000 Subject: [PATCH 1/5] Show `activating...` messages by default --- bin/pyenv-sh-activate | 4 +--- bin/pyenv-sh-deactivate | 4 +--- bin/pyenv-virtualenv-init | 20 ++++++++++---------- 3 files changed, 12 insertions(+), 16 deletions(-) diff --git a/bin/pyenv-sh-activate b/bin/pyenv-sh-activate index 4fff676..90e0877 100755 --- a/bin/pyenv-sh-activate +++ b/bin/pyenv-sh-activate @@ -87,9 +87,7 @@ if [ -z "$PYENV_VIRTUALENV_INIT" ]; then pyenv-virtualenv-init >&2 || true fi -if [ -n "$VERBOSE" ]; then - echo "pyenv-virtualenv: activate ${versions}" 1>&2 -fi +echo "pyenv-virtualenv: activate ${versions}" 1>&2 if [ -z "$no_shell" ]; then echo "pyenv shell \"${versions}\";" diff --git a/bin/pyenv-sh-deactivate b/bin/pyenv-sh-deactivate index ee7e03e..e9270d2 100755 --- a/bin/pyenv-sh-deactivate +++ b/bin/pyenv-sh-deactivate @@ -36,9 +36,7 @@ if [ -z "${VIRTUAL_ENV}" ]; then exit 1 fi -if [ -n "$VERBOSE" ]; then - echo "pyenv-virtualenv: deactivate ${prefix##*/}" 1>&2 -fi +echo "pyenv-virtualenv: deactivate ${prefix##*/}" 1>&2 if [ -n "${PYENV_ACTIVATE_SHELL}" ]; then # shell version set in pyenv-sh-activate should be unset diff --git a/bin/pyenv-virtualenv-init b/bin/pyenv-virtualenv-init index db15aa3..c7b3d7e 100755 --- a/bin/pyenv-virtualenv-init +++ b/bin/pyenv-virtualenv-init @@ -106,21 +106,21 @@ function _pyenv_virtualenv_hook --on-event fish_prompt; set -l ret \$status if [ -n "\$PYENV_ACTIVATE" ] if [ (pyenv version-name 2>/dev/null; or true) = "system" ] - pyenv deactivate --no-error --verbose + pyenv deactivate --no-error set -e PYENV_DEACTIVATE return \$ret end if [ "\$PYENV_ACTIVATE" != "\$PYENV_PREFIX" ] - if pyenv deactivate --no-error --verbose + if pyenv deactivate --no-error set -e PYENV_DEACTIVATE - pyenv activate --no-error --verbose; or set -e PYENV_DEACTIVATE + pyenv activate --no-error; or set -e PYENV_DEACTIVATE else - pyenv activate --no-error --verbose + pyenv activate --no-error end end else if [ -z "\$VIRTUAL_ENV" ]; and [ "\$PYENV_DEACTIVATE" != "\$PYENV_PREFIX" ] - pyenv activate --no-error --verbose; or true + pyenv activate --no-error; or true end end return \$ret @@ -144,21 +144,21 @@ if [[ "$shell" != "fish" ]]; then local ret=\$? if [ -n "\$PYENV_ACTIVATE" ]; then if [ "\$(pyenv version-name 2>/dev/null || true)" = "system" ]; then - eval "\$(pyenv sh-deactivate --no-error --verbose)" + eval "\$(pyenv sh-deactivate --no-error)" unset PYENV_DEACTIVATE return \$ret fi if [ "\$PYENV_ACTIVATE" != "\$(pyenv prefix 2>/dev/null || true)" ]; then - if eval "\$(pyenv sh-deactivate --no-error --verbose)"; then + if eval "\$(pyenv sh-deactivate --no-error)"; then unset PYENV_DEACTIVATE - eval "\$(pyenv sh-activate --no-error --verbose)" || unset PYENV_DEACTIVATE + eval "\$(pyenv sh-activate --no-error)" || unset PYENV_DEACTIVATE else - eval "\$(pyenv sh-activate --no-error --verbose)" + eval "\$(pyenv sh-activate --no-error)" fi fi else if [ -z "\$VIRTUAL_ENV" ] && [ "\$PYENV_DEACTIVATE" != "\$(pyenv prefix 2>/dev/null || true)" ]; then - eval "\$(pyenv sh-activate --no-error --verbose)" || true + eval "\$(pyenv sh-activate --no-error)" || true fi fi return \$ret From 8731e9bf14fad0c6bf6d674b9a0feb79e19f6f09 Mon Sep 17 00:00:00 2001 From: "Yamashita, Yuu" Date: Fri, 6 Nov 2015 17:33:40 +0000 Subject: [PATCH 2/5] replaced `--no-error` by `--quiet` --- bin/pyenv-sh-activate | 12 ++++++------ bin/pyenv-sh-deactivate | 8 ++++---- bin/pyenv-virtualenv-init | 20 ++++++++++---------- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/bin/pyenv-sh-activate b/bin/pyenv-sh-activate index 90e0877..eae5707 100755 --- a/bin/pyenv-sh-activate +++ b/bin/pyenv-sh-activate @@ -14,7 +14,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -unset NOERROR +unset QUIET unset VERBOSE while [ $# -gt 0 ]; do @@ -24,8 +24,8 @@ while [ $# -gt 0 ]; do echo --unset exec pyenv-virtualenvs --bare ;; - "--no-error" ) - NOERROR=1 + "--no-error" | "--quiet" ) + QUIET=1 ;; "--unset" ) echo "pyenv deactivate" @@ -57,14 +57,14 @@ if [ -z "${PYENV_VIRTUALENV_INIT}" ]; then fi if [ "${#versions[@]}" -gt 1 ]; then - [ -n "$NOERROR" ] || echo "pyenv-virtualenv: cannot activate multiple versions at once: ${versions[@]}" 1>&2 + [ -n "$QUIET" ] || echo "pyenv-virtualenv: cannot activate multiple versions at once: ${versions[@]}" 1>&2 echo "false" exit 1 fi if pyenv-prefix "${versions}" 1>/dev/null 2>&1; then if ! pyenv-virtualenv-prefix "${versions}" 1>/dev/null 2>&1; then - [ -n "$NOERROR" ] || echo "pyenv-virtualenv: version \`${versions}' is not a virtualenv" 1>&2 + [ -n "$QUIET" ] || echo "pyenv-virtualenv: version \`${versions}' is not a virtualenv" 1>&2 echo "false" exit 1 fi @@ -72,7 +72,7 @@ else version="$(pyenv-version-name)" versions="${version%/envs/*}/envs/${versions}" if ! pyenv-virtualenv-prefix "${versions}" 1>/dev/null 2>&1; then - [ -n "$NOERROR" ] || echo "pyenv-virtualenv: version \`${versions}' is not an environment of anaconda/miniconda" 1>&2 + [ -n "$QUIET" ] || echo "pyenv-virtualenv: version \`${versions}' is not an environment of anaconda/miniconda" 1>&2 echo "false" exit 1 fi diff --git a/bin/pyenv-sh-deactivate b/bin/pyenv-sh-deactivate index e9270d2..ca77e25 100755 --- a/bin/pyenv-sh-deactivate +++ b/bin/pyenv-sh-deactivate @@ -9,13 +9,13 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -unset NOERROR +unset QUIET unset VERBOSE while [ $# -gt 0 ]; do case "$1" in - "--no-error" ) - NOERROR=1 + "--no-error" | "--quiet") + QUIET=1 ;; "--verbose" ) VERBOSE=1 @@ -31,7 +31,7 @@ shell="$(basename "${PYENV_SHELL:-$SHELL}")" prefix="${PYENV_ACTIVATE:-${VIRTUAL_ENV}}" if [ -z "${VIRTUAL_ENV}" ]; then - [ -n "$NOERROR" ] || echo "pyenv-virtualenv: no virtualenv has been activated." 1>&2 + [ -n "$QUIET" ] || echo "pyenv-virtualenv: no virtualenv has been activated." 1>&2 echo "false" exit 1 fi diff --git a/bin/pyenv-virtualenv-init b/bin/pyenv-virtualenv-init index c7b3d7e..bfd03ff 100755 --- a/bin/pyenv-virtualenv-init +++ b/bin/pyenv-virtualenv-init @@ -106,21 +106,21 @@ function _pyenv_virtualenv_hook --on-event fish_prompt; set -l ret \$status if [ -n "\$PYENV_ACTIVATE" ] if [ (pyenv version-name 2>/dev/null; or true) = "system" ] - pyenv deactivate --no-error + pyenv deactivate --quiet set -e PYENV_DEACTIVATE return \$ret end if [ "\$PYENV_ACTIVATE" != "\$PYENV_PREFIX" ] - if pyenv deactivate --no-error + if pyenv deactivate --quiet set -e PYENV_DEACTIVATE - pyenv activate --no-error; or set -e PYENV_DEACTIVATE + pyenv activate --quiet; or set -e PYENV_DEACTIVATE else - pyenv activate --no-error + pyenv activate --quiet end end else if [ -z "\$VIRTUAL_ENV" ]; and [ "\$PYENV_DEACTIVATE" != "\$PYENV_PREFIX" ] - pyenv activate --no-error; or true + pyenv activate --quiet; or true end end return \$ret @@ -144,21 +144,21 @@ if [[ "$shell" != "fish" ]]; then local ret=\$? if [ -n "\$PYENV_ACTIVATE" ]; then if [ "\$(pyenv version-name 2>/dev/null || true)" = "system" ]; then - eval "\$(pyenv sh-deactivate --no-error)" + eval "\$(pyenv sh-deactivate --quiet)" unset PYENV_DEACTIVATE return \$ret fi if [ "\$PYENV_ACTIVATE" != "\$(pyenv prefix 2>/dev/null || true)" ]; then - if eval "\$(pyenv sh-deactivate --no-error)"; then + if eval "\$(pyenv sh-deactivate --quiet)"; then unset PYENV_DEACTIVATE - eval "\$(pyenv sh-activate --no-error)" || unset PYENV_DEACTIVATE + eval "\$(pyenv sh-activate --quiet)" || unset PYENV_DEACTIVATE else - eval "\$(pyenv sh-activate --no-error)" + eval "\$(pyenv sh-activate --quiet)" fi fi else if [ -z "\$VIRTUAL_ENV" ] && [ "\$PYENV_DEACTIVATE" != "\$(pyenv prefix 2>/dev/null || true)" ]; then - eval "\$(pyenv sh-activate --no-error)" || true + eval "\$(pyenv sh-activate --quiet)" || true fi fi return \$ret From 7f33ddd9118af4e0a70da35bfdc7e9521cd8e4d2 Mon Sep 17 00:00:00 2001 From: "Yamashita, Yuu" Date: Fri, 6 Nov 2015 17:34:21 +0000 Subject: [PATCH 3/5] prompt should be managed by users, not by tools --- bin/pyenv-sh-activate | 4 ---- bin/pyenv-sh-deactivate | 4 ---- 2 files changed, 8 deletions(-) diff --git a/bin/pyenv-sh-activate b/bin/pyenv-sh-activate index eae5707..4f60a63 100755 --- a/bin/pyenv-sh-activate +++ b/bin/pyenv-sh-activate @@ -161,7 +161,3 @@ EOS ;; esac fi - -if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT}" ]; then - : # TODO: change prompt? -fi diff --git a/bin/pyenv-sh-deactivate b/bin/pyenv-sh-deactivate index ca77e25..c49d1cf 100755 --- a/bin/pyenv-sh-deactivate +++ b/bin/pyenv-sh-deactivate @@ -106,7 +106,3 @@ EOS ;; esac fi - -if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT}" ]; then - : # TODO: change prompt? -fi From 017d20ad915bc141ee1e21e6e116e79bb51cdf8e Mon Sep 17 00:00:00 2001 From: "Yamashita, Yuu" Date: Fri, 6 Nov 2015 17:58:09 +0000 Subject: [PATCH 4/5] remove unnecessary logic from init script --- bin/pyenv-sh-deactivate | 4 ++-- bin/pyenv-virtualenv-init | 39 ++++++++++----------------------------- 2 files changed, 12 insertions(+), 31 deletions(-) diff --git a/bin/pyenv-sh-deactivate b/bin/pyenv-sh-deactivate index c49d1cf..524aa5e 100755 --- a/bin/pyenv-sh-deactivate +++ b/bin/pyenv-sh-deactivate @@ -28,9 +28,9 @@ while [ $# -gt 0 ]; do done shell="$(basename "${PYENV_SHELL:-$SHELL}")" -prefix="${PYENV_ACTIVATE:-${VIRTUAL_ENV}}" +prefix="${VIRTUAL_ENV:-${PYENV_ACTIVATE}}" -if [ -z "${VIRTUAL_ENV}" ]; then +if [ -z "${prefix}" ]; then [ -n "$QUIET" ] || echo "pyenv-virtualenv: no virtualenv has been activated." 1>&2 echo "false" exit 1 diff --git a/bin/pyenv-virtualenv-init b/bin/pyenv-virtualenv-init index bfd03ff..50d501c 100755 --- a/bin/pyenv-virtualenv-init +++ b/bin/pyenv-virtualenv-init @@ -102,24 +102,14 @@ case "$shell" in fish ) cat </dev/null; or true) set -l ret \$status - if [ -n "\$PYENV_ACTIVATE" ] - if [ (pyenv version-name 2>/dev/null; or true) = "system" ] - pyenv deactivate --quiet - set -e PYENV_DEACTIVATE - return \$ret - end - if [ "\$PYENV_ACTIVATE" != "\$PYENV_PREFIX" ] - if pyenv deactivate --quiet - set -e PYENV_DEACTIVATE - pyenv activate --quiet; or set -e PYENV_DEACTIVATE - else - pyenv activate --quiet - end + if [ -n "\$VIRTUAL_ENV" ] + if [ "\$VIRTUAL_ENV" != (pyenv prefix 2>/dev/null; or true) ] + pyenv deactivate --quiet; or true + pyenv activate --quiet; or true end else - if [ -z "\$VIRTUAL_ENV" ]; and [ "\$PYENV_DEACTIVATE" != "\$PYENV_PREFIX" ] + if [ "\$PYENV_DEACTIVATE" != (pyenv prefix 2>/dev/null; or true) ] pyenv activate --quiet; or true end end @@ -142,22 +132,13 @@ esac if [[ "$shell" != "fish" ]]; then cat </dev/null || true)" = "system" ]; then - eval "\$(pyenv sh-deactivate --quiet)" - unset PYENV_DEACTIVATE - return \$ret - fi - if [ "\$PYENV_ACTIVATE" != "\$(pyenv prefix 2>/dev/null || true)" ]; then - if eval "\$(pyenv sh-deactivate --quiet)"; then - unset PYENV_DEACTIVATE - eval "\$(pyenv sh-activate --quiet)" || unset PYENV_DEACTIVATE - else - eval "\$(pyenv sh-activate --quiet)" - fi + if [ -n "\$VIRTUAL_ENV" ]; then + if [ "\$VIRTUAL_ENV" != "\$(pyenv prefix 2>/dev/null || true)" ]; then + eval "\$(pyenv sh-deactivate --quiet)" || true + eval "\$(pyenv sh-activate --quiet)" || true fi else - if [ -z "\$VIRTUAL_ENV" ] && [ "\$PYENV_DEACTIVATE" != "\$(pyenv prefix 2>/dev/null || true)" ]; then + if [ "\$PYENV_DEACTIVATE" != "\$(pyenv prefix 2>/dev/null || true)" ]; then eval "\$(pyenv sh-activate --quiet)" || true fi fi From 0fa5de07c96bb18331584400c48f10396769b2b1 Mon Sep 17 00:00:00 2001 From: "Yamashita, Yuu" Date: Fri, 6 Nov 2015 18:26:23 +0000 Subject: [PATCH 5/5] fix broken tests --- bin/pyenv-sh-deactivate | 7 ++++- bin/pyenv-virtualenv-init | 6 ++-- test/activate.bats | 16 +++++++--- test/conda-activate.bats | 6 ++++ test/conda-deactivate.bats | 3 ++ test/deactivate.bats | 26 +++++++++++----- test/init.bats | 64 +++++++++++--------------------------- 7 files changed, 66 insertions(+), 62 deletions(-) diff --git a/bin/pyenv-sh-deactivate b/bin/pyenv-sh-deactivate index 524aa5e..bc1d859 100755 --- a/bin/pyenv-sh-deactivate +++ b/bin/pyenv-sh-deactivate @@ -36,7 +36,12 @@ if [ -z "${prefix}" ]; then exit 1 fi -echo "pyenv-virtualenv: deactivate ${prefix##*/}" 1>&2 +if [[ "${prefix}" != "${prefix%/envs/*}" ]]; then + version="$(basename "${prefix%/envs/*}")/envs/${prefix##*/}" +else + version="${prefix##*/}" +fi +echo "pyenv-virtualenv: deactivate ${version}" 1>&2 if [ -n "${PYENV_ACTIVATE_SHELL}" ]; then # shell version set in pyenv-sh-activate should be unset diff --git a/bin/pyenv-virtualenv-init b/bin/pyenv-virtualenv-init index 50d501c..02e2c73 100755 --- a/bin/pyenv-virtualenv-init +++ b/bin/pyenv-virtualenv-init @@ -134,12 +134,12 @@ if [[ "$shell" != "fish" ]]; then local ret=\$? if [ -n "\$VIRTUAL_ENV" ]; then if [ "\$VIRTUAL_ENV" != "\$(pyenv prefix 2>/dev/null || true)" ]; then - eval "\$(pyenv sh-deactivate --quiet)" || true - eval "\$(pyenv sh-activate --quiet)" || true + eval "\$(pyenv sh-deactivate --quiet || true)" || true + eval "\$(pyenv sh-activate --quiet || true)" || true fi else if [ "\$PYENV_DEACTIVATE" != "\$(pyenv prefix 2>/dev/null || true)" ]; then - eval "\$(pyenv sh-activate --quiet)" || true + eval "\$(pyenv sh-activate --quiet || true)" || true fi fi return \$ret diff --git a/test/activate.bats b/test/activate.bats index e812c07..d274e9b 100644 --- a/test/activate.bats +++ b/test/activate.bats @@ -23,6 +23,7 @@ setup() { assert_success assert_output </dev/null || true)" = "system" ]; then - eval "\$(pyenv sh-deactivate --no-error --verbose)" - unset PYENV_DEACTIVATE - return \$ret - fi - if [ "\$PYENV_ACTIVATE" != "\$(pyenv prefix 2>/dev/null || true)" ]; then - if eval "\$(pyenv sh-deactivate --no-error --verbose)"; then - unset PYENV_DEACTIVATE - eval "\$(pyenv sh-activate --no-error --verbose)" || unset PYENV_DEACTIVATE - else - eval "\$(pyenv sh-activate --no-error --verbose)" - fi + if [ -n "\$VIRTUAL_ENV" ]; then + if [ "\$VIRTUAL_ENV" != "\$(pyenv prefix 2>/dev/null || true)" ]; then + eval "\$(pyenv sh-deactivate --quiet || true)" || true + eval "\$(pyenv sh-activate --quiet || true)" || true fi else - if [ -z "\$VIRTUAL_ENV" ] && [ "\$PYENV_DEACTIVATE" != "\$(pyenv prefix 2>/dev/null || true)" ]; then - eval "\$(pyenv sh-activate --no-error --verbose)" || true + if [ "\$PYENV_DEACTIVATE" != "\$(pyenv prefix 2>/dev/null || true)" ]; then + eval "\$(pyenv sh-activate --quiet || true)" || true fi fi return \$ret @@ -89,25 +80,15 @@ EOS setenv PATH '${TMP}/pyenv/plugins/pyenv-virtualenv/shims' \$PATH; setenv PYENV_VIRTUALENV_INIT 1; function _pyenv_virtualenv_hook --on-event fish_prompt; - set -l PYENV_PREFIX (pyenv prefix 2>/dev/null; or true) set -l ret \$status - if [ -n "\$PYENV_ACTIVATE" ] - if [ (pyenv version-name 2>/dev/null; or true) = "system" ] - pyenv deactivate --no-error --verbose - set -e PYENV_DEACTIVATE - return \$ret - end - if [ "\$PYENV_ACTIVATE" != "\$PYENV_PREFIX" ] - if pyenv deactivate --no-error --verbose - set -e PYENV_DEACTIVATE - pyenv activate --no-error --verbose; or set -e PYENV_DEACTIVATE - else - pyenv activate --no-error --verbose - end + if [ -n "\$VIRTUAL_ENV" ] + if [ "\$VIRTUAL_ENV" != (pyenv prefix 2>/dev/null; or true) ] + pyenv deactivate --quiet; or true + pyenv activate --quiet; or true end else - if [ -z "\$VIRTUAL_ENV" ]; and [ "\$PYENV_DEACTIVATE" != "\$PYENV_PREFIX" ] - pyenv activate --no-error --verbose; or true + if [ "\$PYENV_DEACTIVATE" != (pyenv prefix 2>/dev/null; or true) ] + pyenv activate --quiet; or true end end return \$ret @@ -124,23 +105,14 @@ export PATH="${TMP}/pyenv/plugins/pyenv-virtualenv/shims:${PATH}"; export PYENV_VIRTUALENV_INIT=1; _pyenv_virtualenv_hook() { local ret=\$? - if [ -n "\$PYENV_ACTIVATE" ]; then - if [ "\$(pyenv version-name 2>/dev/null || true)" = "system" ]; then - eval "\$(pyenv sh-deactivate --no-error --verbose)" - unset PYENV_DEACTIVATE - return \$ret - fi - if [ "\$PYENV_ACTIVATE" != "\$(pyenv prefix 2>/dev/null || true)" ]; then - if eval "\$(pyenv sh-deactivate --no-error --verbose)"; then - unset PYENV_DEACTIVATE - eval "\$(pyenv sh-activate --no-error --verbose)" || unset PYENV_DEACTIVATE - else - eval "\$(pyenv sh-activate --no-error --verbose)" - fi + if [ -n "\$VIRTUAL_ENV" ]; then + if [ "\$VIRTUAL_ENV" != "\$(pyenv prefix 2>/dev/null || true)" ]; then + eval "\$(pyenv sh-deactivate --quiet || true)" || true + eval "\$(pyenv sh-activate --quiet || true)" || true fi else - if [ -z "\$VIRTUAL_ENV" ] && [ "\$PYENV_DEACTIVATE" != "\$(pyenv prefix 2>/dev/null || true)" ]; then - eval "\$(pyenv sh-activate --no-error --verbose)" || true + if [ "\$PYENV_DEACTIVATE" != "\$(pyenv prefix 2>/dev/null || true)" ]; then + eval "\$(pyenv sh-activate --quiet || true)" || true fi fi return \$ret