diff --git a/Library/Homebrew/cmd/formulae.sh b/Library/Homebrew/cmd/formulae.sh index 649af45c9e4ed2..add7c71d41e360 100644 --- a/Library/Homebrew/cmd/formulae.sh +++ b/Library/Homebrew/cmd/formulae.sh @@ -8,5 +8,17 @@ source "${HOMEBREW_LIBRARY}/Homebrew/items.sh" homebrew-formulae() { - homebrew-items '*\.rb' 'Casks' 's|/Formula/|/|' '^homebrew/core' + local formulae + formulae="$(homebrew-items '*\.rb' 'Casks' 's|/Formula/|/|' '^homebrew/core')" + + # HOMEBREW_CACHE is set by brew.sh + # shellcheck disable=SC2154 + if [[ -n "${HOMEBREW_INSTALL_FROM_API}" && -f "${HOMEBREW_CACHE}/api/formula.json" ]] + then + local api_formulae + api_formulae="$(ruby -e "require 'json'; JSON.parse(File.read('${HOMEBREW_CACHE}/api/formula.json')).each { |f| puts f['name'] }")" + formulae=$(echo -e "${formulae}\n${api_formulae}" | sort -uf | grep .) + fi + + echo "${formulae}" }