Skip to content

Commit

Permalink
Add rbenv's own rbenv.d directory to hook paths
Browse files Browse the repository at this point in the history
This allows rbenv source code to ship with built-in hooks.
  • Loading branch information
mislav committed Oct 19, 2014
1 parent bf39d88 commit 6322635
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 4 deletions.
13 changes: 9 additions & 4 deletions libexec/rbenv
Original file line number Diff line number Diff line change
Expand Up @@ -71,15 +71,20 @@ shopt -s nullglob

bin_path="$(abs_dirname "$0")"
for plugin_bin in "${RBENV_ROOT}/plugins/"*/bin; do
bin_path="${bin_path}:${plugin_bin}"
PATH="${plugin_bin}:${PATH}"
done
export PATH="${bin_path}:${PATH}"

hook_path="${RBENV_HOOK_PATH}:${RBENV_ROOT}/rbenv.d:/usr/local/etc/rbenv.d:/etc/rbenv.d:/usr/lib/rbenv/hooks"
RBENV_HOOK_PATH="${RBENV_HOOK_PATH}:${RBENV_ROOT}/rbenv.d"
if [ "${bin_path%/*}" != "$RBENV_ROOT" ]; then
# Add rbenv's own `rbenv.d` unless rbenv was cloned to RBENV_ROOT
RBENV_HOOK_PATH="${RBENV_HOOK_PATH}:${bin_path%/*}/rbenv.d"
fi
RBENV_HOOK_PATH="${RBENV_HOOK_PATH}:/usr/local/etc/rbenv.d:/etc/rbenv.d:/usr/lib/rbenv/hooks"
for plugin_hook in "${RBENV_ROOT}/plugins/"*/etc/rbenv.d; do
hook_path="${hook_path}:${plugin_hook}"
RBENV_HOOK_PATH="${RBENV_HOOK_PATH}:${plugin_hook}"
done
export RBENV_HOOK_PATH="$hook_path"
export RBENV_HOOK_PATH

shopt -u nullglob

Expand Down
Binary file removed libexec/rbenv-realpath.dylib
Binary file not shown.
5 changes: 5 additions & 0 deletions test/rbenv.bats
Original file line number Diff line number Diff line change
Expand Up @@ -68,3 +68,8 @@ load test_helper
assert_line 1 "/other/hooks"
assert_line 2 "${RBENV_ROOT}/rbenv.d"
}

@test "RBENV_HOOK_PATH includes rbenv built-in plugins" {
run rbenv echo "RBENV_HOOK_PATH"
assert_success ":${RBENV_ROOT}/rbenv.d:${BATS_TEST_DIRNAME%/*}/rbenv.d:/usr/local/etc/rbenv.d:/etc/rbenv.d:/usr/lib/rbenv/hooks"
}

0 comments on commit 6322635

Please sign in to comment.