mirror of
https://github.com/pyenv/pyenv.git
synced 2024-11-21 20:47:00 -05:00
better error message for rbenv prefix system
Have `rbenv prefix` handle the case where system Ruby is not installed, i.e. `rbenv which ruby` doesn't find ruby in PATH. Fixes #362
This commit is contained in:
parent
16c3e0ddac
commit
f4fade3d26
2 changed files with 22 additions and 4 deletions
|
@ -22,10 +22,14 @@ elif [ -z "$RBENV_VERSION" ]; then
|
|||
fi
|
||||
|
||||
if [ "$RBENV_VERSION" = "system" ]; then
|
||||
RUBY_PATH="$(rbenv-which ruby)"
|
||||
if RUBY_PATH="$(rbenv-which ruby 2>/dev/null)"; then
|
||||
RUBY_PATH="${RUBY_PATH%/*}"
|
||||
echo "${RUBY_PATH%/bin}"
|
||||
exit
|
||||
else
|
||||
echo "rbenv: system version not found in PATH" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
RBENV_PREFIX_PATH="${RBENV_ROOT}/versions/${RBENV_VERSION}"
|
||||
|
|
|
@ -23,3 +23,17 @@ load test_helper
|
|||
RBENV_VERSION="system" run rbenv-prefix
|
||||
assert_success "$RBENV_TEST_DIR"
|
||||
}
|
||||
|
||||
@test "prefix for invalid system" {
|
||||
USRBIN_ALT="${RBENV_TEST_DIR}/usr-bin-alt"
|
||||
mkdir -p "$USRBIN_ALT"
|
||||
for util in head readlink greadlink; do
|
||||
if [ -x "/usr/bin/$util" ]; then
|
||||
ln -s "/usr/bin/$util" "${USRBIN_ALT}/$util"
|
||||
fi
|
||||
done
|
||||
PATH_WITHOUT_RUBY="${PATH/\/usr\/bin:/$USRBIN_ALT:}"
|
||||
|
||||
PATH="$PATH_WITHOUT_RUBY" run rbenv-prefix system
|
||||
assert_failure "rbenv: system version not found in PATH"
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue