#!/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 resolve_link() { $(type -p greadlink readlink | head -1) $1 } realpath() { local cwd="$(pwd)" local base="$(basename $1)" local path="$1" while [ -n "$path" ]; do cd "${path%/*}" local name="${path##*/}" path="$(resolve_link "$name" || true)" done echo "$(pwd)/$base" cd "$cwd" } shopt -s nullglob for path in ${PYENV_HOOK_PATH//:/$'\n'}; do for script in $path/"$PYENV_COMMAND"/*.bash; do echo $(realpath $script) done done shopt -u nullglob