#!/usr/bin/env bash # Summary: List hook scripts for a given pyenv command # Usage: pyenv hooks set -e [ -n "$PYENV_DEBUG" ] && set -x # Provide pyenv completions if [ "$1" = "--complete" ]; then echo exec echo rehash echo which exit fi PYENV_COMMAND="$1" if [ -z "$PYENV_COMMAND" ]; then pyenv-help --usage hooks >&2 exit 1 fi if ! enable -f "${BASH_SOURCE%/*}"/pyenv-realpath.dylib realpath 2>/dev/null; then if [ -n "$PYENV_NATIVE_EXT" ]; then echo "pyenv: failed to load \`realpath' builtin" >&2 exit 1 fi READLINK=$(type -p greadlink readlink | head -1) if [ -z "$READLINK" ]; then echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2 exit 1 fi resolve_link() { $READLINK "$1" } realpath() { local cwd="$(pwd)" local path="$1" while [ -n "$path" ]; do cd "${path%/*}" local name="${path##*/}" path="$(resolve_link "$name" || true)" done echo "$(pwd)/$name" cd "$cwd" } fi IFS=: hook_paths=($PYENV_HOOK_PATH) shopt -s nullglob for path in "${hook_paths[@]}"; do for script in "$path/$PYENV_COMMAND"/*.bash; do realpath "$script" done done shopt -u nullglob