diff --git a/Library/Homebrew/cmd/casks.sh b/Library/Homebrew/cmd/casks.sh index 58e3acbff2..5361ea59f1 100644 --- a/Library/Homebrew/cmd/casks.sh +++ b/Library/Homebrew/cmd/casks.sh @@ -13,9 +13,12 @@ homebrew-casks() { if [[ -z "${HOMEBREW_NO_INSTALL_FROM_API}" && -f "${HOMEBREW_CACHE}/api/cask_names.txt" ]] then - cat "${HOMEBREW_CACHE}/api/cask_names.txt" - echo + { + cat "${HOMEBREW_CACHE}/api/cask_names.txt" + echo + homebrew-items '*/Casks/*\.rb' '.*/homebrew/homebrew-cask/.*' 's|/Casks/|/|' '^homebrew/cask' + } | sort -uf else - homebrew-items '*/Casks/*\.rb' '' 's|/Casks/|/|' '^homebrew/cask' + homebrew-items '*/Casks/*\.rb' '^\b$' 's|/Casks/|/|' '^homebrew/cask' fi } diff --git a/Library/Homebrew/cmd/formulae.sh b/Library/Homebrew/cmd/formulae.sh index 94a0f66a3e..1f25cad154 100644 --- a/Library/Homebrew/cmd/formulae.sh +++ b/Library/Homebrew/cmd/formulae.sh @@ -13,9 +13,12 @@ homebrew-formulae() { if [[ -z "${HOMEBREW_NO_INSTALL_FROM_API}" && -f "${HOMEBREW_CACHE}/api/formula_names.txt" ]] then - cat "${HOMEBREW_CACHE}/api/formula_names.txt" - echo + { + cat "${HOMEBREW_CACHE}/api/formula_names.txt" + echo + homebrew-items '*\.rb' '.*Casks(/.*|$)|.*/homebrew/homebrew-core/.*' 's|/Formula/|/|' '^homebrew/core' + } | sort -uf else - homebrew-items '*\.rb' 'Casks' 's|/Formula/|/|' '^homebrew/core' + homebrew-items '*\.rb' '.*Casks(/.*|$)' 's|/Formula/|/|' '^homebrew/core' fi } diff --git a/Library/Homebrew/items.sh b/Library/Homebrew/items.sh index 4c436fed39..2c99aa0019 100644 --- a/Library/Homebrew/items.sh +++ b/Library/Homebrew/items.sh @@ -1,6 +1,7 @@ homebrew-items() { local items local sed_extended_regex_flag + local find_args local find_include_filter="$1" local find_exclude_filter="$2" local sed_filter="$3" @@ -11,17 +12,19 @@ homebrew-items() { if [[ -n "${HOMEBREW_MACOS}" ]] then sed_extended_regex_flag="-E" + find_args=("-E" "${HOMEBREW_REPOSITORY}/Library/Taps") else sed_extended_regex_flag="-r" + find_args=("${HOMEBREW_REPOSITORY}/Library/Taps" "-regextype" "posix-extended") fi # HOMEBREW_REPOSITORY is set by brew.sh # shellcheck disable=SC2154 [[ -d "${HOMEBREW_REPOSITORY}/Library/Taps" ]] || return items="$( - find "${HOMEBREW_REPOSITORY}/Library/Taps" \ + find "${find_args[@]}" \ -type d \( \ - -name "${find_exclude_filter}" -o \ + -regex "${find_exclude_filter}" -o \ -name cmd -o \ -name .github -o \ -name lib -o \