brew.sh: alias which as type -P

This commit is contained in:
XuehaiPan 2021-09-15 01:45:21 +08:00
parent f14fcc810e
commit d77d510ce9
2 changed files with 14 additions and 25 deletions

View File

@ -137,6 +137,12 @@ git() {
"${HOMEBREW_LIBRARY}/Homebrew/shims/scm/git" "$@"
}
# Search given executable in PATH (remove dependency for `which` command)
which() {
# Alias to Bash built-in command `type -P`
type -P "$@"
}
numeric() {
# Condense the exploded argument into a single return value.
# shellcheck disable=SC2086,SC2183

View File

@ -1,27 +1,5 @@
export HOMEBREW_REQUIRED_RUBY_VERSION=2.6.3
# Search given executable in all PATH entries (remove dependency for `which` command)
which_all() {
if [[ $# -ne 1 ]]
then
return 1
fi
local executable entries entry retcode=1
IFS=':' read -r -a entries <<< "${PATH}" # `readarray -d ':' -t` seems not applicable on WSL Bash
for entry in "${entries[@]}"
do
executable="${entry}/$1"
if [[ -x "${executable}" ]]
then
echo "${executable}"
retcode=0 # present
fi
done
return "${retcode}"
}
# HOMEBREW_LIBRARY is from the user environment
# shellcheck disable=SC2154
test_ruby() {
@ -46,13 +24,18 @@ find_ruby() {
local ruby_exec
while read -r ruby_exec
do
if test_ruby "${ruby_exec}"; then
if test_ruby "${ruby_exec}"
then
echo "${ruby_exec}"
break
fi
done < <(
which_all ruby
PATH="${HOMEBREW_PATH}" which_all ruby
# function which() is set by brew.sh
# it's aliased to `type -P`
# shellcheck disable=SC2230
which -a ruby
# shellcheck disable=SC2230
PATH="${HOMEBREW_PATH}" which -a ruby
)
fi
}