diff --git a/libexec/rbenv-hooks b/libexec/rbenv-hooks index 794b9437..25551782 100755 --- a/libexec/rbenv-hooks +++ b/libexec/rbenv-hooks @@ -25,7 +25,6 @@ resolve_link() { realpath() { local cwd="$(pwd)" - local base="$(basename $1)" local path="$1" while [ -n "$path" ]; do @@ -34,7 +33,7 @@ realpath() { path="$(resolve_link "$name" || true)" done - echo "$(pwd)/$base" + echo "$(pwd)/$name" cd "$cwd" } diff --git a/test/hooks.bats b/test/hooks.bats index 738c55ed..bc1b5f17 100644 --- a/test/hooks.bats +++ b/test/hooks.bats @@ -36,3 +36,14 @@ create_hook() { RBENV_HOOK_PATH="${HOME}/../rbenv.d" run rbenv-hooks exec assert_success "${RBENV_TEST_DIR}/rbenv.d/exec/hello.bash" } + +@test "resolves symlinks" { + path="${RBENV_TEST_DIR}/rbenv.d" + mkdir -p "${path}/exec" + mkdir -p "$HOME" + touch "${HOME}/hola.bash" + ln -s "../../home/hola.bash" "${path}/exec/hello.bash" + + RBENV_HOOK_PATH="$path" run rbenv-hooks exec + assert_success "${HOME}/hola.bash" +}