diff --git a/libexec/pyenv b/libexec/pyenv index 40c763d2..9a7154f4 100755 --- a/libexec/pyenv +++ b/libexec/pyenv @@ -76,27 +76,27 @@ export PYENV_DIR shopt -s nullglob -PYENV_INSTALL_PATH="$(abs_dirname "$0")" -PYENV_INSTALL_PATH="${PYENV_INSTALL_PATH%/*}" +_PYENV_INSTALL_PREFIX="$(abs_dirname "$0")" +_PYENV_INSTALL_PREFIX="${_PYENV_INSTALL_PREFIX%/*}" -export PYENV_INSTALL_PATH +export _PYENV_INSTALL_PREFIX -for plugin_bin in "${PYENV_INSTALL_PATH}"/plugins/*/bin; do +for plugin_bin in "${_PYENV_INSTALL_PREFIX}"/plugins/*/bin; do PATH="${plugin_bin}:${PATH}" done # PYENV_ROOT can be set to anything, so it may happen to be equal to the base path above, # resulting in duplicate PATH entries -if [ "${PYENV_INSTALL_PATH}" != "$PYENV_ROOT" ]; then +if [ "${_PYENV_INSTALL_PREFIX}" != "$PYENV_ROOT" ]; then for plugin_bin in "${PYENV_ROOT}"/plugins/*/bin; do PATH="${plugin_bin}:${PATH}" done fi -export PATH="${PYENV_INSTALL_PATH}/libexec:${PATH}" +export PATH="${_PYENV_INSTALL_PREFIX}/libexec:${PATH}" PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:${PYENV_ROOT}/pyenv.d" -if [ "${PYENV_INSTALL_PATH}" != "$PYENV_ROOT" ]; then +if [ "${_PYENV_INSTALL_PREFIX}" != "$PYENV_ROOT" ]; then # Add pyenv's own `pyenv.d` unless pyenv was cloned to PYENV_ROOT - PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:${PYENV_INSTALL_PATH}/pyenv.d" + PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:${_PYENV_INSTALL_PREFIX}/pyenv.d" fi PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:/usr/etc/pyenv.d:/usr/local/etc/pyenv.d:/etc/pyenv.d:/usr/lib/pyenv/hooks" for plugin_hook in "${PYENV_ROOT}/plugins/"*/etc/pyenv.d; do diff --git a/libexec/pyenv-init b/libexec/pyenv-init index cff9a557..7bf9d71c 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -241,7 +241,7 @@ function print_env() { } function print_completion() { - completion="${PYENV_INSTALL_PATH}/completions/pyenv.${shell}" + completion="${_PYENV_INSTALL_PREFIX}/completions/pyenv.${shell}" if [ -r "$completion" ]; then echo "source '$completion'" fi diff --git a/plugins/python-build/bin/pyenv-install b/plugins/python-build/bin/pyenv-install index 68705641..a6e6021a 100755 --- a/plugins/python-build/bin/pyenv-install +++ b/plugins/python-build/bin/pyenv-install @@ -265,12 +265,12 @@ for DEFINITION in "${DEFINITIONS[@]}"; do echo "See all available versions with \`pyenv install --list'." echo echo -n "If the version you need is missing, try upgrading pyenv" - if [ "${PYENV_INSTALL_PATH}" != "${PYENV_INSTALL_PATH#$(brew --prefix 2>/dev/null)}" ]; then + if [[ command -v brew && "${_PYENV_INSTALL_PREFIX}" == "$(brew --prefix)/"* ]; then printf ":\n\n" echo " brew update && brew upgrade pyenv" - elif [ -d "${PYENV_INSTALL_PATH}/.git" ]; then + elif [ -d "${_PYENV_INSTALL_PREFIX}/.git" ]; then printf ":\n\n" - echo " cd ${PYENV_INSTALL_PATH} && git pull && cd -" + echo " cd ${_PYENV_INSTALL_PREFIX} && git pull && cd -" else printf ".\n" fi diff --git a/plugins/python-build/test/pyenv.bats b/plugins/python-build/test/pyenv.bats index 7e4032aa..3422ed97 100644 --- a/plugins/python-build/test/pyenv.bats +++ b/plugins/python-build/test/pyenv.bats @@ -141,7 +141,7 @@ OUT stub_python_build "--definitions : echo 2.6.9 2.7.9-rc1 2.7.9-rc2 3.4.2 | tr ' ' $'\\n'" mkdir "$BATS_TEST_TMPDIR/.git" - PYENV_INSTALL_PATH="$BATS_TEST_TMPDIR" run pyenv-install 2.7.9 + _PYENV_INSTALL_PREFIX="$BATS_TEST_TMPDIR" run pyenv-install 2.7.9 assert_failure assert_output <&2 && exit 2' \ "--definitions : true" - PYENV_INSTALL_PATH="$BATS_TEST_TMPDIR" run pyenv-install 1.9.3 + _PYENV_INSTALL_PREFIX="$BATS_TEST_TMPDIR" run pyenv-install 1.9.3 assert_failure assert_output </dev/null; then + export _PYENV_INSTALL_PREFIX="${BATS_TEST_DIRNAME%/*}" + if ! enable -f "${_PYENV_INSTALL_PREFIX}"/libexec/pyenv-realpath.dylib realpath 2>/dev/null; then if [ -n "$PYENV_NATIVE_EXT" ]; then echo "pyenv: failed to load \`realpath' builtin" >&2 exit 1 @@ -19,13 +20,12 @@ setup() { export BATS_TEST_TMPDIR="${bats_test_tmpdir}" export PYENV_TEST_DIR="${BATS_TEST_TMPDIR}/pyenv" export PYENV_ROOT="${PYENV_TEST_DIR}/root" - export PYENV_INSTALL_PATH="${PYENV_TEST_DIR}" export HOME="${PYENV_TEST_DIR}/home" export PYENV_HOOK_PATH="${PYENV_ROOT}/pyenv.d" PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin PATH="${PYENV_TEST_DIR}/bin:$PATH" - PATH="${BATS_TEST_DIRNAME%/*}/libexec:$PATH" + PATH="${_PYENV_INSTALL_PREFIX}/libexec:$PATH" PATH="${BATS_TEST_DIRNAME}/libexec:$PATH" PATH="${PYENV_ROOT}/shims:$PATH" export PATH