Merge pull request #18402 from Homebrew/brew-tap-speedup
Speed up `brew tap` for no arguments
This commit is contained in:
commit
90597f7a5e
@ -172,6 +172,12 @@ case "$@" in
|
||||
source "${HOMEBREW_LIBRARY}/Homebrew/list.sh"
|
||||
homebrew-list "$@" && exit 0
|
||||
;;
|
||||
# homebrew-tap only handles invocations with no arguments
|
||||
tap)
|
||||
source "${HOMEBREW_LIBRARY}/Homebrew/tap.sh"
|
||||
homebrew-tap "$@"
|
||||
exit 0
|
||||
;;
|
||||
# falls back to cmd/help.rb on a non-zero return
|
||||
help | --help | -h | --usage | "-?" | "")
|
||||
homebrew-help "$@" && exit 0
|
||||
|
||||
27
Library/Homebrew/tap.sh
Normal file
27
Library/Homebrew/tap.sh
Normal file
@ -0,0 +1,27 @@
|
||||
# Does the quickest output of brew tap possible for no arguments.
|
||||
# HOMEBREW_LIBRARY is set by bin/brew
|
||||
# shellcheck disable=SC2154
|
||||
|
||||
normalise_tap_name() {
|
||||
local directory="$1"
|
||||
local user
|
||||
local repository
|
||||
|
||||
user="$(tr '[:upper:]' '[:lower:]' <<<"${directory%%/*}")"
|
||||
repository="$(tr '[:upper:]' '[:lower:]' <<<"${directory#*/}")"
|
||||
repository="${repository#@(home|linux)brew-}"
|
||||
echo "${user}/${repository}"
|
||||
}
|
||||
|
||||
homebrew-tap() {
|
||||
local taplib="${HOMEBREW_LIBRARY}/Taps"
|
||||
(
|
||||
shopt -s extglob
|
||||
|
||||
for directory in "${taplib}"/*/*
|
||||
do
|
||||
[[ -d "${directory}" ]] || continue
|
||||
normalise_tap_name "${directory#"${taplib}"/}"
|
||||
done | sort
|
||||
)
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user