diff --git a/bin/pyenv-sh-activate b/bin/pyenv-sh-activate index 4fff676..4f60a63 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 @@ -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}\";" @@ -163,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 ee7e03e..bc1d859 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 @@ -28,17 +28,20 @@ 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 - [ -n "$NOERROR" ] || echo "pyenv-virtualenv: no virtualenv has been activated." 1>&2 +if [ -z "${prefix}" ]; then + [ -n "$QUIET" ] || echo "pyenv-virtualenv: no virtualenv has been activated." 1>&2 echo "false" exit 1 fi -if [ -n "$VERBOSE" ]; then - 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 @@ -108,7 +111,3 @@ EOS ;; esac fi - -if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT}" ]; then - : # TODO: change prompt? -fi diff --git a/bin/pyenv-virtualenv-init b/bin/pyenv-virtualenv-init index db15aa3..02e2c73 100755 --- a/bin/pyenv-virtualenv-init +++ b/bin/pyenv-virtualenv-init @@ -102,25 +102,15 @@ 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 --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 @@ -142,23 +132,14 @@ esac if [[ "$shell" != "fish" ]]; then cat </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 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