set +o posix quiet_safe_cd() { cd "$1" >/dev/null || { echo "Error: failed to cd to $1" >&2; exit 1; } } absdir() { quiet_safe_cd "${1%/*}/" && pwd -P } dirbasepath() { local dir="$1" local base="${2##*/}" echo "$dir/$base" } realpath() { local path="$1" local dir local dest dir="$(absdir "$path")" path="$(dirbasepath "$dir" "$path")" while [[ -L "$path" ]] do dest="$(readlink "$path")" if [[ "$dest" = "/"* ]] then path="$dest" else path="$dir/$dest" fi dir="$(absdir "$path")" path="$(dirbasepath "$dir" "$path")" done echo "$path" } executable() { local file="$1" [[ -f "$file" && -x "$file" ]] } lowercase() { echo "$1" | tr "[:upper:]" "[:lower:]" } safe_exec() { local arg0="$1" if ! executable "$arg0" then return fi # prevent fork-bombs if [[ "$(lowercase "$arg0")" = "$SHIM_FILE" || "$(realpath "$arg0")" = "$SHIM_REAL" ]] then return fi if [[ "$HOMEBREW" = "print-path" ]] then local dir="$(quiet_safe_cd "${arg0%/*}/" && pwd)" local path="$(dirbasepath "$dir" "$arg0")" echo "$path" exit fi exec "$@" } try_exec_non_system() { local file="$1" shift IFS=$'\n' for path in $(type -aP "$file") do if [[ "$path" != "/usr/bin/$file" ]] then safe_exec "$path" "$@" fi done unset IFS } SHIM_FILE="${0##*/}" SHIM_REAL="$(realpath "$0")" if [[ "$1" = --homebrew=* ]] then HOMEBREW="${1:11}" shift fi