You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 regels
1.2 KiB

11 jaren geleden
13 jaren geleden
13 jaren geleden
13 jaren geleden
13 jaren geleden
13 jaren geleden
13 jaren geleden
13 jaren geleden
  1. #!/usr/bin/env bash
  2. # Summary: List hook scripts for a given rbenv command
  3. # Usage: rbenv hooks <command>
  4. set -e
  5. [ -n "$RBENV_DEBUG" ] && set -x
  6. # Provide rbenv completions
  7. if [ "$1" = "--complete" ]; then
  8. echo exec
  9. echo rehash
  10. echo version-name
  11. echo version-origin
  12. echo which
  13. exit
  14. fi
  15. RBENV_COMMAND="$1"
  16. if [ -z "$RBENV_COMMAND" ]; then
  17. rbenv-help --usage hooks >&2
  18. exit 1
  19. fi
  20. if ! enable -f "${BASH_SOURCE%/*}"/rbenv-realpath.dylib realpath 2>/dev/null; then
  21. if [ -n "$RBENV_NATIVE_EXT" ]; then
  22. echo "rbenv: failed to load \`realpath' builtin" >&2
  23. exit 1
  24. fi
  25. READLINK=$(type -p greadlink readlink | head -1)
  26. if [ -z "$READLINK" ]; then
  27. echo "rbenv: cannot find readlink - are you missing GNU coreutils?" >&2
  28. exit 1
  29. fi
  30. resolve_link() {
  31. $READLINK "$1"
  32. }
  33. realpath() {
  34. local cwd="$PWD"
  35. local path="$1"
  36. local name
  37. while [ -n "$path" ]; do
  38. name="${path##*/}"
  39. [ "$name" = "$path" ] || cd "${path%/*}"
  40. path="$(resolve_link "$name" || true)"
  41. done
  42. echo "${PWD}/$name"
  43. cd "$cwd"
  44. }
  45. fi
  46. IFS=: hook_paths=($RBENV_HOOK_PATH)
  47. shopt -s nullglob
  48. for path in "${hook_paths[@]}"; do
  49. for script in "$path/$RBENV_COMMAND"/*.bash; do
  50. realpath "$script"
  51. done
  52. done
  53. shopt -u nullglob