Merge pull request #13790 from MikeMcQuaid/all_deprecation

Deprecate reading all formulae through commands
This commit is contained in:
Mike McQuaid 2022-09-05 14:27:42 +01:00 committed by GitHub
commit 9cfa3d9f2a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
31 changed files with 329 additions and 170 deletions

View File

@ -82,13 +82,13 @@ jobs:
brew update-test --commit=HEAD brew update-test --commit=HEAD
- name: Run brew readall on all taps - name: Run brew readall on all taps
run: brew readall --aliases run: brew readall --eval-all --aliases
- name: Run brew style on homebrew-core for Linux - name: Run brew style on homebrew-core for Linux
run: brew style --display-cop-names homebrew/core run: brew style --display-cop-names homebrew/core
- name: Run brew audit --skip-style on all taps - name: Run brew audit --skip-style on all taps
run: brew audit --skip-style --except=version --display-failures-only run: brew audit --eval-all --skip-style --except=version --display-failures-only
- name: Set up all Homebrew taps - name: Set up all Homebrew taps
run: | run: |
@ -301,7 +301,7 @@ jobs:
Library/Taps/homebrew/homebrew-services Library/Taps/homebrew/homebrew-services
- name: Run brew readall on all taps - name: Run brew readall on all taps
run: brew readall --aliases run: brew readall --eval-all --aliases
- name: Install brew tests dependencies - name: Install brew tests dependencies
run: brew install subversion curl run: brew install subversion curl

View File

@ -24,6 +24,11 @@ module Cask
attr_accessor :download, :allow_reassignment attr_accessor :download, :allow_reassignment
def self.all def self.all
# TODO: uncomment for 3.7.0 and ideally avoid using ARGV by moving to e.g. CLI::Parser
# if !ARGV.include?("--eval-all") && !Homebrew::EnvConfig.eval_all?
# odeprecated "Cask::Cask#all without --all or HOMEBREW_EVAL_ALL"
# end
Tap.flat_map(&:cask_files).map do |f| Tap.flat_map(&:cask_files).map do |f|
CaskLoader::FromTapPathLoader.new(f).load(config: nil) CaskLoader::FromTapPathLoader.new(f).load(config: nil)
rescue CaskUnreadableError => e rescue CaskUnreadableError => e

View File

@ -132,6 +132,9 @@ module Homebrew
sig { returns(T::Boolean) } sig { returns(T::Boolean) }
def all?; end def all?; end
sig { returns(T::Boolean) }
def eval_all?; end
sig { returns(T::Boolean) } sig { returns(T::Boolean) }
def full?; end def full?; end

View File

@ -54,8 +54,11 @@ module Homebrew
switch "--installed", switch "--installed",
description: "List dependencies for formulae that are currently installed. If <formula> is " \ description: "List dependencies for formulae that are currently installed. If <formula> is " \
"specified, list only its dependencies that are currently installed." "specified, list only its dependencies that are currently installed."
switch "--eval-all",
description: "Evaluate all available formulae and casks, whether installed or not, to list " \
"their dependencies."
switch "--all", switch "--all",
description: "List dependencies for all available formulae." hidden: true
switch "--for-each", switch "--for-each",
description: "Switch into the mode used by the `--all` option, but only list dependencies " \ description: "Switch into the mode used by the `--all` option, but only list dependencies " \
"for each provided <formula>, one formula per line. This is used for " \ "for each provided <formula>, one formula per line. This is used for " \
@ -66,6 +69,7 @@ module Homebrew
description: "Treat all named arguments as casks." description: "Treat all named arguments as casks."
conflicts "--tree", "--graph" conflicts "--tree", "--graph"
conflicts "--installed", "--eval-all"
conflicts "--installed", "--all" conflicts "--installed", "--all"
conflicts "--formula", "--cask" conflicts "--formula", "--cask"
formula_options formula_options
@ -77,6 +81,15 @@ module Homebrew
def deps def deps
args = deps_args.parse args = deps_args.parse
all = args.eval_all?
if args.all?
unless all
odeprecated "brew deps --all",
"brew deps --eval-all or HOMEBREW_EVAL_ALL"
end
all = true
end
Formulary.enable_factory_cache! Formulary.enable_factory_cache!
recursive = !args.direct? recursive = !args.direct?
@ -118,7 +131,7 @@ module Homebrew
puts_deps_tree dependents, recursive: recursive, args: args puts_deps_tree dependents, recursive: recursive, args: args
return return
elsif args.all? elsif all
puts_deps sorted_dependents(Formula.all + Cask::Cask.all), recursive: recursive, args: args puts_deps sorted_dependents(Formula.all + Cask::Cask.all), recursive: recursive, args: args
return return
elsif !args.no_named? && args.for_each? elsif !args.no_named? && args.for_each?

View File

@ -18,8 +18,7 @@ module Homebrew
Homebrew::CLI::Parser.new do Homebrew::CLI::Parser.new do
description <<~EOS description <<~EOS
Display <formula>'s name and one-line description. Display <formula>'s name and one-line description.
Formula descriptions are cached; the cache is created on the The cache is created on the first search, making that search slower than subsequent ones.
first search, making that search slower than subsequent ones.
EOS EOS
switch "-s", "--search", switch "-s", "--search",
description: "Search both names and descriptions for <text>. If <text> is flanked by " \ description: "Search both names and descriptions for <text>. If <text> is flanked by " \
@ -30,6 +29,9 @@ module Homebrew
switch "-d", "--description", switch "-d", "--description",
description: "Search just descriptions for <text>. If <text> is flanked by slashes, " \ description: "Search just descriptions for <text>. If <text> is flanked by slashes, " \
"it is interpreted as a regular expression." "it is interpreted as a regular expression."
switch "--eval-all",
description: "Evaluate all available formulae and casks, whether installed or not, to search their " \
"descriptions. Implied if HOMEBREW_EVAL_ALL is set."
switch "--formula", "--formulae", switch "--formula", "--formulae",
description: "Treat all named arguments as formulae." description: "Treat all named arguments as formulae."
switch "--cask", "--casks", switch "--cask", "--casks",
@ -44,6 +46,10 @@ module Homebrew
def desc def desc
args = desc_args.parse args = desc_args.parse
if !args.eval_all? && !Homebrew::EnvConfig.eval_all?
odeprecated "brew desc", "brew desc --eval-all or HOMEBREW_EVAL_ALL"
end
search_type = if args.search? search_type = if args.search?
:either :either
elsif args.name? elsif args.name?

View File

@ -58,9 +58,13 @@ module Homebrew
switch "--installed", switch "--installed",
depends_on: "--json", depends_on: "--json",
description: "Print JSON of formulae that are currently installed." description: "Print JSON of formulae that are currently installed."
switch "--all", switch "--eval-all",
depends_on: "--json", depends_on: "--json",
description: "Print JSON of all available formulae." description: "Evaluate all available formulae and casks, whether installed or not, to print their " \
"JSON. Implied if HOMEBREW_EVAL_ALL is set."
switch "--all",
hidden: true,
depends_on: "--json"
switch "--variations", switch "--variations",
depends_on: "--json", depends_on: "--json",
description: "Include the variations hash in each formula's JSON output." description: "Include the variations hash in each formula's JSON output."
@ -71,6 +75,7 @@ module Homebrew
switch "--cask", "--casks", switch "--cask", "--casks",
description: "Treat all named arguments as casks." description: "Treat all named arguments as casks."
conflicts "--installed", "--eval-all"
conflicts "--installed", "--all" conflicts "--installed", "--all"
conflicts "--formula", "--cask" conflicts "--formula", "--cask"
@ -103,7 +108,13 @@ module Homebrew
print_analytics(args: args) print_analytics(args: args)
elsif args.json elsif args.json
print_json(args: args) all = args.eval_all?
if !all && args.all? && !Homebrew::EnvConfig.eval_all?
odeprecated "brew info --all", "brew info --eval-all or HOMEBREW_EVAL_ALL"
all = true
end
print_json(all, args: args)
elsif args.github? elsif args.github?
raise FormulaOrCaskUnspecifiedError if args.no_named? raise FormulaOrCaskUnspecifiedError if args.no_named?
@ -187,15 +198,15 @@ module Homebrew
version_hash[version] version_hash[version]
end end
sig { params(args: CLI::Args).void } sig { params(all: T::Boolean, args: CLI::Args).void }
def print_json(args:) def print_json(all, args:)
raise FormulaOrCaskUnspecifiedError if !(args.all? || args.installed?) && args.no_named? raise FormulaOrCaskUnspecifiedError if !(all || args.installed?) && args.no_named?
json = case json_version(args.json) json = case json_version(args.json)
when :v1, :default when :v1, :default
raise UsageError, "cannot specify --cask with --json=v1!" if args.cask? raise UsageError, "cannot specify --cask with --json=v1!" if args.cask?
formulae = if args.all? formulae = if all
Formula.all.sort Formula.all.sort
elsif args.installed? elsif args.installed?
Formula.installed.sort Formula.installed.sort
@ -211,7 +222,7 @@ module Homebrew
formulae.map(&:to_hash) formulae.map(&:to_hash)
end end
when :v2 when :v2
formulae, casks = if args.all? formulae, casks = if all
[Formula.all.sort, Cask::Cask.all.sort_by(&:full_name)] [Formula.all.sort, Cask::Cask.all.sort_by(&:full_name)]
elsif args.installed? elsif args.installed?
[Formula.installed.sort, Cask::Caskroom.casks.sort_by(&:full_name)] [Formula.installed.sort, Cask::Caskroom.casks.sort_by(&:full_name)]

View File

@ -19,8 +19,11 @@ module Homebrew
description: "Show all options on a single line separated by spaces." description: "Show all options on a single line separated by spaces."
switch "--installed", switch "--installed",
description: "Show options for formulae that are currently installed." description: "Show options for formulae that are currently installed."
switch "--eval-all",
description: "Evaluate all available formulae and casks, whether installed or not, to show their " \
"options."
switch "--all", switch "--all",
description: "Show options for all available formulae." hidden: true
flag "--command=", flag "--command=",
description: "Show options for the specified <command>." description: "Show options for the specified <command>."
@ -33,7 +36,13 @@ module Homebrew
def options def options
args = options_args.parse args = options_args.parse
all = args.eval_all?
if args.all? if args.all?
odeprecated "brew info --all", "brew info --eval-all" if !all && !Homebrew::EnvConfig.eval_all?
all = true
end
if all
puts_options Formula.all.sort, args: args puts_options Formula.all.sort, args: args
elsif args.installed? elsif args.installed?
puts_options Formula.installed.sort, args: args puts_options Formula.installed.sort, args: args

View File

@ -3,6 +3,7 @@
require "readall" require "readall"
require "cli/parser" require "cli/parser"
require "env_config"
module Homebrew module Homebrew
extend T::Sig extend T::Sig
@ -22,6 +23,9 @@ module Homebrew
description: "Verify any alias symlinks in each tap." description: "Verify any alias symlinks in each tap."
switch "--syntax", switch "--syntax",
description: "Syntax-check all of Homebrew's Ruby files (if no `<tap>` is passed)." description: "Syntax-check all of Homebrew's Ruby files (if no `<tap>` is passed)."
switch "--eval-all",
description: "Evaluate all available formulae and casks, whether installed or not. " \
"Implied if HOMEBREW_EVAL_ALL is set."
named_args :tap named_args :tap
end end
@ -39,6 +43,9 @@ module Homebrew
options = { aliases: args.aliases? } options = { aliases: args.aliases? }
taps = if args.no_named? taps = if args.no_named?
if !args.eval_all? && !Homebrew::EnvConfig.eval_all?
odeprecated "brew readall", "brew readall --eval-all or HOMEBREW_EVAL_ALL"
end
Tap Tap
else else
args.named.to_installed_taps args.named.to_installed_taps

View File

@ -44,6 +44,10 @@ module Homebrew
switch "--desc", switch "--desc",
description: "Search for formulae with a description matching <text> and casks with " \ description: "Search for formulae with a description matching <text> and casks with " \
"a name or description matching <text>." "a name or description matching <text>."
switch "--eval-all",
depends_on: "--desc",
description: "Evaluate all available formulae and casks, whether installed or not, to search their " \
"descriptions. Implied if HOMEBREW_EVAL_ALL is set."
switch "--pull-request", switch "--pull-request",
description: "Search for GitHub pull requests containing <text>." description: "Search for GitHub pull requests containing <text>."
switch "--open", switch "--open",
@ -75,6 +79,9 @@ module Homebrew
string_or_regex = query_regexp(query) string_or_regex = query_regexp(query)
if args.desc? if args.desc?
if !args.eval_all? && !Homebrew::EnvConfig.eval_all?
odeprecated "brew search --desc", "brew search --desc --eval-all or HOMEBREW_EVAL_ALL"
end
search_descriptions(string_or_regex, args) search_descriptions(string_or_regex, args)
elsif args.pull_request? elsif args.pull_request?
search_pull_requests(query, args) search_pull_requests(query, args)

View File

@ -43,6 +43,9 @@ module Homebrew
description: "Migrate tapped formulae from symlink-based to directory-based structure." description: "Migrate tapped formulae from symlink-based to directory-based structure."
switch "--list-pinned", switch "--list-pinned",
description: "List all pinned taps." description: "List all pinned taps."
switch "--eval-all",
description: "Evaluate all the formulae, casks and aliases in the new tap to check validity. " \
"Implied if HOMEBREW_EVAL_ALL is set."
named_args :tap, max: 2 named_args :tap, max: 2
end end
@ -65,7 +68,8 @@ module Homebrew
tap.install clone_target: args.named.second, tap.install clone_target: args.named.second,
force_auto_update: args.force_auto_update?, force_auto_update: args.force_auto_update?,
custom_remote: args.custom_remote?, custom_remote: args.custom_remote?,
quiet: args.quiet? quiet: args.quiet?,
verify: args.eval_all? || Homebrew::EnvConfig.eval_all?
rescue TapRemoteMismatchError, TapNoCustomRemoteError => e rescue TapRemoteMismatchError, TapNoCustomRemoteError => e
odie e odie e
rescue TapAlreadyTappedError rescue TapAlreadyTappedError

View File

@ -30,8 +30,10 @@ module Homebrew
description: "Resolve more than one level of dependencies." description: "Resolve more than one level of dependencies."
switch "--installed", switch "--installed",
description: "Only list formulae and casks that are currently installed." description: "Only list formulae and casks that are currently installed."
switch "--eval-all",
description: "Evaluate all available formulae and casks, whether installed or not, to show " \
"their dependents."
switch "--all", switch "--all",
description: "List all formulae and casks whether installed or not.",
hidden: true hidden: true
switch "--include-build", switch "--include-build",
description: "Include all formulae that specify <formula> as `:build` type dependency." description: "Include all formulae that specify <formula> as `:build` type dependency."
@ -88,8 +90,6 @@ module Homebrew
show_formulae_and_casks = !args.formula? && !args.cask? show_formulae_and_casks = !args.formula? && !args.cask?
includes, ignores = args_includes_ignores(args) includes, ignores = args_includes_ignores(args)
# TODO: 3.6.0: odeprecate not specifying args.all?, require args.installed?
deps = [] deps = []
if use_runtime_dependents if use_runtime_dependents
if show_formulae_and_casks || args.formula? if show_formulae_and_casks || args.formula?
@ -106,6 +106,18 @@ module Homebrew
deps deps
else else
all = args.eval_all?
if args.all?
unless all
odeprecated "brew uses --all",
"brew uses --eval-all or HOMEBREW_EVAL_ALL"
end
all = true
end
if !args.installed? && !(all || Homebrew::EnvConfig.eval_all?)
odeprecated "brew uses", "brew uses --eval-all or HOMEBREW_EVAL_ALL"
end
if show_formulae_and_casks || args.formula? if show_formulae_and_casks || args.formula?
deps += args.installed? ? Formula.installed : Formula.all deps += args.installed? ? Formula.installed : Formula.all
end end

View File

@ -34,9 +34,9 @@ class DescriptionCacheStore < CacheStore
# #
# @return [nil] # @return [nil]
def populate_if_empty! def populate_if_empty!
return unless Homebrew::EnvConfig.eval_all?
return unless database.empty? return unless database.empty?
# TODO: 3.6.0: consider if we want to actually read all contents of all formulae or odeprecate.
Formula.all.each { |f| update!(f.full_name, f.desc) } Formula.all.each { |f| update!(f.full_name, f.desc) }
end end
@ -45,6 +45,7 @@ class DescriptionCacheStore < CacheStore
# @param report [Report] an update report generated by cmd/update.rb # @param report [Report] an update report generated by cmd/update.rb
# @return [nil] # @return [nil]
def update_from_report!(report) def update_from_report!(report)
return unless Homebrew::EnvConfig.eval_all?
return populate_if_empty! if database.empty? return populate_if_empty! if database.empty?
return if report.empty? return if report.empty?
@ -63,6 +64,7 @@ class DescriptionCacheStore < CacheStore
# @param formula_names [Array] the formulae to update # @param formula_names [Array] the formulae to update
# @return [nil] # @return [nil]
def update_from_formula_names!(formula_names) def update_from_formula_names!(formula_names)
return unless Homebrew::EnvConfig.eval_all?
return populate_if_empty! if database.empty? return populate_if_empty! if database.empty?
formula_names.each do |name| formula_names.each do |name|
@ -100,9 +102,9 @@ class CaskDescriptionCacheStore < DescriptionCacheStore
# #
# @return [nil] # @return [nil]
def populate_if_empty! def populate_if_empty!
return unless Homebrew::EnvConfig.eval_all?
return unless database.empty? return unless database.empty?
# TODO: 3.6.0: consider if we want to actually read all contents of all casks or odeprecate.
Cask::Cask.all.each { |c| update!(c.full_name, [c.name.join(", "), c.desc.presence]) } Cask::Cask.all.each { |c| update!(c.full_name, [c.name.join(", "), c.desc.presence]) }
end end
@ -111,6 +113,7 @@ class CaskDescriptionCacheStore < DescriptionCacheStore
# @param report [Report] an update report generated by cmd/update.rb # @param report [Report] an update report generated by cmd/update.rb
# @return [nil] # @return [nil]
def update_from_report!(report) def update_from_report!(report)
return unless Homebrew::EnvConfig.eval_all?
return populate_if_empty! if database.empty? return populate_if_empty! if database.empty?
return if report.empty? return if report.empty?
@ -126,6 +129,7 @@ class CaskDescriptionCacheStore < DescriptionCacheStore
# @param cask_tokens [Array] the casks to update # @param cask_tokens [Array] the casks to update
# @return [nil] # @return [nil]
def update_from_cask_tokens!(cask_tokens) def update_from_cask_tokens!(cask_tokens)
return unless Homebrew::EnvConfig.eval_all?
return populate_if_empty! if database.empty? return populate_if_empty! if database.empty?
cask_tokens.each do |token| cask_tokens.each do |token|

View File

@ -41,8 +41,10 @@ module Homebrew
description: "Run additional, slower style checks that require a network connection." description: "Run additional, slower style checks that require a network connection."
switch "--installed", switch "--installed",
description: "Only check formulae and casks that are currently installed." description: "Only check formulae and casks that are currently installed."
switch "--eval-all",
description: "Evaluate all available formulae and casks, whether installed or not, to audit them. " \
"Implied if HOMEBREW_EVAL_ALL is set."
switch "--all", switch "--all",
description: "Check all formulae and casks whether installed or not.",
hidden: true hidden: true
switch "--new", "--new-formula", "--new-cask", switch "--new", "--new-formula", "--new-cask",
description: "Run various additional style checks to determine if a new formula or cask is eligible " \ description: "Run various additional style checks to determine if a new formula or cask is eligible " \
@ -118,8 +120,6 @@ module Homebrew
ENV.activate_extensions! ENV.activate_extensions!
ENV.setup_build_environment ENV.setup_build_environment
# TODO: 3.6.0: odeprecate not specifying args.all?, require args.installed?
audit_formulae, audit_casks = if args.tap audit_formulae, audit_casks = if args.tap
Tap.fetch(args.tap).then do |tap| Tap.fetch(args.tap).then do |tap|
[ [
@ -131,6 +131,10 @@ module Homebrew
no_named_args = true no_named_args = true
[Formula.installed, Cask::Caskroom.casks] [Formula.installed, Cask::Caskroom.casks]
elsif args.no_named? elsif args.no_named?
if !args.eval_all? && !Homebrew::EnvConfig.eval_all?
odeprecated "brew audit",
"brew audit --eval-all or HOMEBREW_EVAL_ALL"
end
no_named_args = true no_named_args = true
[Formula.all, Cask::Cask.all] [Formula.all, Cask::Cask.all]
else else

View File

@ -18,8 +18,8 @@ module Homebrew
Create a pull request to update <formula> with a new URL or a new tag. Create a pull request to update <formula> with a new URL or a new tag.
If a <URL> is specified, the <SHA-256> checksum of the new download should also If a <URL> is specified, the <SHA-256> checksum of the new download should also
be specified. A best effort to determine the <SHA-256> and <formula> name will be specified. A best effort to determine the <SHA-256> will be made if not supplied
be made if either or both values are not supplied by the user. by the user.
If a <tag> is specified, the Git commit <revision> corresponding to that tag If a <tag> is specified, the Git commit <revision> corresponding to that tag
should also be specified. A best effort to determine the <revision> will be made should also be specified. A best effort to determine the <revision> will be made
@ -34,9 +34,6 @@ module Homebrew
EOS EOS
switch "-n", "--dry-run", switch "-n", "--dry-run",
description: "Print what would be done rather than doing it." description: "Print what would be done rather than doing it."
switch "--all",
description: "Read all formulae if necessary to determine URL.",
hidden: true
switch "--write-only", switch "--write-only",
description: "Make the expected file modifications without taking any Git actions." description: "Make the expected file modifications without taking any Git actions."
switch "--commit", switch "--commit",
@ -89,7 +86,6 @@ module Homebrew
conflicts "--no-audit", "--strict" conflicts "--no-audit", "--strict"
conflicts "--no-audit", "--online" conflicts "--no-audit", "--online"
conflicts "--url", "--tag" conflicts "--url", "--tag"
conflicts "--installed", "--all"
named_args :formula, max: 1 named_args :formula, max: 1
end end
@ -110,9 +106,7 @@ module Homebrew
ENV["BROWSER"] = Homebrew::EnvConfig.browser ENV["BROWSER"] = Homebrew::EnvConfig.browser
formula = args.named.to_formulae.first formula = args.named.to_formulae.first
new_url = args.url new_url = args.url
formula ||= determine_formula_from_url(new_url) if new_url.present?
raise FormulaUnspecifiedError if formula.blank? raise FormulaUnspecifiedError if formula.blank?
odie "This formula is disabled!" if formula.disabled? odie "This formula is disabled!" if formula.disabled?
@ -368,27 +362,6 @@ module Homebrew
GitHub.create_bump_pr(pr_info, args: args) GitHub.create_bump_pr(pr_info, args: args)
end end
def determine_formula_from_url(url)
# Split the new URL on / and find any formulae that have the same URL
# except for the last component, but don't try to match any more than the
# first five components since sometimes the last component isn't the only
# one to change.
url_split = url.split("/")
maximum_url_components_to_match = 5
components_to_match = [url_split.count - 1, maximum_url_components_to_match].min
base_url = url_split.first(components_to_match).join("/")
base_url = /#{Regexp.escape(base_url)}/
guesses = []
# TODO: 3.6.0: odeprecate not specifying args.all?
Formula.all.each do |f|
guesses << f if f.stable&.url&.match(base_url)
end
return guesses.shift if guesses.count == 1
return if guesses.count <= 1
odie "Couldn't guess formula for sure; could be one of these:\n#{guesses.map(&:name).join(", ")}"
end
def determine_mirror(url) def determine_mirror(url)
case url case url
when %r{.*ftp\.gnu\.org/gnu.*} when %r{.*ftp\.gnu\.org/gnu.*}

View File

@ -24,13 +24,15 @@ module Homebrew
`~/.brew_livecheck_watchlist`. `~/.brew_livecheck_watchlist`.
EOS EOS
switch "--full-name", switch "--full-name",
description: "Print formulae/casks with fully-qualified names." description: "Print formulae and casks with fully-qualified names."
flag "--tap=", flag "--tap=",
description: "Check formulae/casks within the given tap, specified as <user>`/`<repo>." description: "Check formulae and casks within the given tap, specified as <user>`/`<repo>."
switch "--eval-all",
description: "Evaluate all available formulae and casks, whether installed or not, to check them."
switch "--all", switch "--all",
description: "Check all available formulae/casks." hidden: true
switch "--installed", switch "--installed",
description: "Check formulae/casks that are currently installed." description: "Check formulae and casks that are currently installed."
switch "--newer-only", switch "--newer-only",
description: "Show the latest version only if it's newer than the formula/cask." description: "Show the latest version only if it's newer than the formula/cask."
switch "--json", switch "--json",
@ -43,7 +45,7 @@ module Homebrew
description: "Only check casks." description: "Only check casks."
conflicts "--debug", "--json" conflicts "--debug", "--json"
conflicts "--tap=", "--all", "--installed" conflicts "--tap=", "--eval-all", "--installed"
conflicts "--cask", "--formula" conflicts "--cask", "--formula"
named_args [:formula, :cask] named_args [:formula, :cask]
@ -53,6 +55,12 @@ module Homebrew
def livecheck def livecheck
args = livecheck_args.parse args = livecheck_args.parse
all = args.eval_all?
if args.all?
odeprecated "brew livecheck --all", "brew livecheck --eval-all" if !all && !Homebrew::EnvConfig.eval_all?
all = true
end
if args.debug? && args.verbose? if args.debug? && args.verbose?
puts args puts args
puts Homebrew::EnvConfig.livecheck_watchlist if Homebrew::EnvConfig.livecheck_watchlist.present? puts Homebrew::EnvConfig.livecheck_watchlist if Homebrew::EnvConfig.livecheck_watchlist.present?
@ -67,7 +75,7 @@ module Homebrew
formulae = args.cask? ? [] : Formula.installed formulae = args.cask? ? [] : Formula.installed
casks = args.formula? ? [] : Cask::Caskroom.casks casks = args.formula? ? [] : Cask::Caskroom.casks
formulae + casks formulae + casks
elsif args.all? elsif all
formulae = args.cask? ? [] : Formula.all formulae = args.cask? ? [] : Formula.all
casks = args.formula? ? [] : Cask::Cask.all casks = args.formula? ? [] : Cask::Cask.all
formulae + casks formulae + casks

View File

@ -20,9 +20,8 @@ module Homebrew
description: "Silence all non-critical errors." description: "Silence all non-critical errors."
switch "--update", switch "--update",
description: "Update RBI files." description: "Update RBI files."
switch "--all", switch "--update-all",
depends_on: "--update", description: "Update all RBI files rather than just updated gems."
description: "Regenerate all RBI files rather than just updated gems."
switch "--suggest-typed", switch "--suggest-typed",
depends_on: "--update", depends_on: "--update",
description: "Try upgrading `typed` sigils." description: "Try upgrading `typed` sigils."
@ -51,7 +50,7 @@ module Homebrew
Homebrew.install_bundler_gems!(groups: ["sorbet"]) Homebrew.install_bundler_gems!(groups: ["sorbet"])
HOMEBREW_LIBRARY_PATH.cd do HOMEBREW_LIBRARY_PATH.cd do
if args.update? if args.update? || args.update_all?
odeprecated "brew typecheck --update --fail-if-not-changed" if args.fail_if_not_changed? odeprecated "brew typecheck --update --fail-if-not-changed" if args.fail_if_not_changed?
excluded_gems = [ excluded_gems = [
@ -63,7 +62,7 @@ module Homebrew
"msgpack:false", # Investigate removing this with Tapioca 0.8 "msgpack:false", # Investigate removing this with Tapioca 0.8
] ]
tapioca_args = ["--exclude", *excluded_gems, "--typed-overrides", *typed_overrides] tapioca_args = ["--exclude", *excluded_gems, "--typed-overrides", *typed_overrides]
tapioca_args << "--all" if args.all? tapioca_args << "--all" if args.update_all?
ohai "Updating Tapioca RBI files..." ohai "Updating Tapioca RBI files..."
safe_system "bundle", "exec", "tapioca", "gem", *tapioca_args safe_system "bundle", "exec", "tapioca", "gem", *tapioca_args

View File

@ -20,11 +20,13 @@ module Homebrew
description: "Use the specified bottle tag (e.g. `big_sur`) instead of the current OS." description: "Use the specified bottle tag (e.g. `big_sur`) instead of the current OS."
switch "--dependents", switch "--dependents",
description: "Skip getting analytics data and sort by number of dependents instead." description: "Skip getting analytics data and sort by number of dependents instead."
switch "--all", "--total", switch "--total",
description: "Print the number of unbottled and total formulae." description: "Print the number of unbottled and total formulae."
switch "--eval-all",
description: "Evaluate all available formulae and casks, whether installed or not, to check them. " \
"Implied if HOMEBREW_EVAL_ALL is set."
conflicts "--dependents", "--all" conflicts "--dependents", "--total"
conflicts "--installed", "--all"
named_args :formula named_args :formula
end end
@ -42,16 +44,22 @@ module Homebrew
Utils::Bottles.tag Utils::Bottles.tag
end end
# TODO: 3.6.0: odeprecate args.total? all = args.eval_all?
if args.total?
if !all && !Homebrew::EnvConfig.eval_all?
odeprecated "brew unbottled --total", "brew unbottled --total --eval-all or HOMEBREW_EVAL_ALL"
end
all = true
end
if args.named.blank? if args.named.blank?
ohai "Getting formulae..." ohai "Getting formulae..."
elsif args.all? elsif all
raise UsageError, "cannot specify `<formula>` and `--all`/`--total`." raise UsageError, "cannot specify `<formula>` and `--eval-all`/`--total`."
end end
formulae, all_formulae, formula_installs = formulae, all_formulae, formula_installs =
formulae_all_installs_from_args(args) formulae_all_installs_from_args(args, all)
deps_hash, uses_hash = deps_uses_from_formulae(all_formulae) deps_hash, uses_hash = deps_uses_from_formulae(all_formulae)
if args.dependents? if args.dependents?
@ -60,9 +68,7 @@ module Homebrew
dependents = uses_hash[f.name]&.length || 0 dependents = uses_hash[f.name]&.length || 0
formula_dependents[f.name] ||= dependents formula_dependents[f.name] ||= dependents
end.reverse end.reverse
end elsif all
if args.all?
output_total(formulae) output_total(formulae)
return return
end end
@ -78,16 +84,18 @@ module Homebrew
output_unbottled(formulae, deps_hash, noun, hash, args.named.present?) output_unbottled(formulae, deps_hash, noun, hash, args.named.present?)
end end
def formulae_all_installs_from_args(args) def formulae_all_installs_from_args(args, all)
if args.named.present? if args.named.present?
formulae = all_formulae = args.named.to_formulae formulae = all_formulae = args.named.to_formulae
elsif args.all?
formulae = all_formulae = Formula.all
elsif args.dependents? elsif args.dependents?
# TODO: 3.6.0: odeprecate not specifying args.all? for args.dependents? if !args.all? && !Homebrew::EnvConfig.eval_all?
odeprecated "brew unbottled --dependents", "brew unbottled --all --dependents or HOMEBREW_EVAL_ALL"
end
formulae = all_formulae = Formula.all formulae = all_formulae = Formula.all
@sort = " (sorted by number of dependents)" @sort = " (sorted by number of dependents)"
elsif all
formulae = all_formulae = Formula.all
else else
formula_installs = {} formula_installs = {}

View File

@ -153,6 +153,11 @@ module Homebrew
"editors will do strange things in this case.", "editors will do strange things in this case.",
default_text: "`$EDITOR` or `$VISUAL`.", default_text: "`$EDITOR` or `$VISUAL`.",
}, },
HOMEBREW_EVAL_ALL: {
description: "If set, `brew` commands evaluate all formulae and casks, executing their arbitrary code, by " \
"default without requiring --eval-all. Required to cache formula and cask descriptions.",
boolean: true,
},
HOMEBREW_FAIL_LOG_LINES: { HOMEBREW_FAIL_LOG_LINES: {
description: "Output this many lines of output on formula `system` failures.", description: "Output this many lines of output on formula `system` failures.",
default: 15, default: 15,

View File

@ -1,9 +1,9 @@
# typed: strict # typed: true
# frozen_string_literal: true # frozen_string_literal: true
module Readall module Readall
class << self class << self
def valid_casks?(*) def valid_casks?(_casks)
true true
end end
end end

View File

@ -1806,7 +1806,10 @@ class Formula
# this should only be used when users specify `--all` to a command # this should only be used when users specify `--all` to a command
# @private # @private
def self.all def self.all
# TODO: 3.6.0: consider checking ARGV for --all # TODO: uncomment for 3.7.0 and ideally avoid using ARGV by moving to e.g. CLI::Parser
# if !ARGV.include?("--eval-all") && !Homebrew::EnvConfig.eval_all?
# odeprecated "Formula#all without --all or HOMEBREW_EVAL_ALL"
# end
files.map do |file| files.map do |file|
Formulary.factory(file) Formulary.factory(file)

View File

@ -1,4 +1,4 @@
# typed: false # typed: true
# frozen_string_literal: true # frozen_string_literal: true
require "formula" require "formula"

View File

@ -2574,6 +2574,8 @@ module Homebrew::EnvConfig
def self.temp(); end def self.temp(); end
def self.eval_all?(); end
def self.update_report_all_formulae?(); end def self.update_report_all_formulae?(); end
def self.update_to_tag?(); end def self.update_to_tag?(); end

View File

@ -245,7 +245,8 @@ class Tap
# logic that skips non-GitHub repositories during auto-updates. # logic that skips non-GitHub repositories during auto-updates.
# @param quiet [Boolean] If set, suppress all output. # @param quiet [Boolean] If set, suppress all output.
# @param custom_remote [Boolean] If set, change the tap's remote if already installed. # @param custom_remote [Boolean] If set, change the tap's remote if already installed.
def install(quiet: false, clone_target: nil, force_auto_update: nil, custom_remote: false) # @param verify [Boolean] If set, verify all the formula, casks and aliases in the tap are valid.
def install(quiet: false, clone_target: nil, force_auto_update: nil, custom_remote: false, verify: false)
require "descriptions" require "descriptions"
require "readall" require "readall"
@ -306,9 +307,8 @@ class Tap
begin begin
safe_system "git", *args safe_system "git", *args
# TODO: 3.6.0: consider if we want to actually read all contents of tap or odeprecate.
if !Readall.valid_tap?(self, aliases: true) && !Homebrew::EnvConfig.developer? if verify && !Readall.valid_tap?(self, aliases: true) && !Homebrew::EnvConfig.developer?
raise "Cannot tap #{name}: invalid syntax in tap!" raise "Cannot tap #{name}: invalid syntax in tap!"
end end
rescue Interrupt, RuntimeError rescue Interrupt, RuntimeError
@ -807,7 +807,7 @@ class CoreTap < Tap
end end
# CoreTap never allows shallow clones (on request from GitHub). # CoreTap never allows shallow clones (on request from GitHub).
def install(quiet: false, clone_target: nil, force_auto_update: nil, custom_remote: false) def install(quiet: false, clone_target: nil, force_auto_update: nil, custom_remote: false, verify: false)
remote = Homebrew::EnvConfig.core_git_remote # set by HOMEBREW_CORE_GIT_REMOTE remote = Homebrew::EnvConfig.core_git_remote # set by HOMEBREW_CORE_GIT_REMOTE
requested_remote = clone_target || remote requested_remote = clone_target || remote

View File

@ -9,7 +9,7 @@ describe "brew desc" do
it "shows a given Formula's description", :integration_test do it "shows a given Formula's description", :integration_test do
setup_test_formula "testball" setup_test_formula "testball"
expect { brew "desc", "testball" } expect { brew "desc", "--eval-all", "testball" }
.to output("testball: Some test\n").to_stdout .to output("testball: Some test\n").to_stdout
.and not_to_output.to_stderr .and not_to_output.to_stderr
.and be_a_success .and be_a_success

View File

@ -14,7 +14,7 @@ describe "brew uses" do
depends_on "bar" depends_on "bar"
RUBY RUBY
expect { brew "uses", "--recursive", "foo" } expect { brew "uses", "--eval-all", "--recursive", "foo" }
.to output(/(bar\nbaz|baz\nbar)/).to_stdout .to output(/(bar\nbaz|baz\nbar)/).to_stdout
.and not_to_output.to_stderr .and not_to_output.to_stderr
.and be_a_success .and be_a_success

View File

@ -10,6 +10,8 @@ describe DescriptionCacheStore do
let(:formula_name) { "test_name" } let(:formula_name) { "test_name" }
let(:description) { "test_description" } let(:description) { "test_description" }
before { allow(Homebrew::EnvConfig).to receive(:eval_all?).and_return(true) }
describe "#update!" do describe "#update!" do
it "sets the formula description" do it "sets the formula description" do
expect(database).to receive(:set).with(formula_name, description) expect(database).to receive(:set).with(formula_name, description)

View File

@ -276,6 +276,7 @@ _brew__s() {
--debian --debian
--debug --debug
--desc --desc
--eval-all
--fedora --fedora
--fink --fink
--formula --formula
@ -300,12 +301,12 @@ _brew_abv() {
case "${cur}" in case "${cur}" in
-*) -*)
__brewcomp " __brewcomp "
--all
--analytics --analytics
--cask --cask
--category --category
--days --days
--debug --debug
--eval-all
--formula --formula
--github --github
--help --help
@ -352,6 +353,7 @@ _brew_audit() {
--display-cop-names --display-cop-names
--display-failures-only --display-failures-only
--display-filename --display-filename
--eval-all
--except --except
--except-cops --except-cops
--fix --fix
@ -728,12 +730,12 @@ _brew_deps() {
case "${cur}" in case "${cur}" in
-*) -*)
__brewcomp " __brewcomp "
--all
--annotate --annotate
--cask --cask
--debug --debug
--direct --direct
--dot --dot
--eval-all
--for-each --for-each
--formula --formula
--full-name --full-name
@ -767,6 +769,7 @@ _brew_desc() {
--cask --cask
--debug --debug
--description --description
--eval-all
--formula --formula
--help --help
--name --name
@ -1051,12 +1054,12 @@ _brew_info() {
case "${cur}" in case "${cur}" in
-*) -*)
__brewcomp " __brewcomp "
--all
--analytics --analytics
--cask --cask
--category --category
--days --days
--debug --debug
--eval-all
--formula --formula
--github --github
--help --help
@ -1232,9 +1235,9 @@ _brew_lc() {
case "${cur}" in case "${cur}" in
-*) -*)
__brewcomp " __brewcomp "
--all
--cask --cask
--debug --debug
--eval-all
--formula --formula
--full-name --full-name
--help --help
@ -1346,9 +1349,9 @@ _brew_livecheck() {
case "${cur}" in case "${cur}" in
-*) -*)
__brewcomp " __brewcomp "
--all
--cask --cask
--debug --debug
--eval-all
--formula --formula
--full-name --full-name
--help --help
@ -1483,10 +1486,10 @@ _brew_options() {
case "${cur}" in case "${cur}" in
-*) -*)
__brewcomp " __brewcomp "
--all
--command --command
--compact --compact
--debug --debug
--eval-all
--help --help
--installed --installed
--quiet --quiet
@ -1685,6 +1688,7 @@ _brew_readall() {
__brewcomp " __brewcomp "
--aliases --aliases
--debug --debug
--eval-all
--help --help
--quiet --quiet
--syntax --syntax
@ -1841,6 +1845,7 @@ _brew_search() {
--debian --debian
--debug --debug
--desc --desc
--eval-all
--fedora --fedora
--fink --fink
--formula --formula
@ -1913,6 +1918,7 @@ _brew_tap() {
__brewcomp " __brewcomp "
--custom-remote --custom-remote
--debug --debug
--eval-all
--force-auto-update --force-auto-update
--help --help
--list-pinned --list-pinned
@ -1973,7 +1979,6 @@ _brew_tc() {
case "${cur}" in case "${cur}" in
-*) -*)
__brewcomp " __brewcomp "
--all
--debug --debug
--dir --dir
--file --file
@ -1983,6 +1988,7 @@ _brew_tc() {
--quiet --quiet
--suggest-typed --suggest-typed
--update --update
--update-all
--verbose --verbose
" "
return return
@ -2041,7 +2047,6 @@ _brew_typecheck() {
case "${cur}" in case "${cur}" in
-*) -*)
__brewcomp " __brewcomp "
--all
--debug --debug
--dir --dir
--file --file
@ -2051,6 +2056,7 @@ _brew_typecheck() {
--quiet --quiet
--suggest-typed --suggest-typed
--update --update
--update-all
--verbose --verbose
" "
return return
@ -2064,12 +2070,13 @@ _brew_unbottled() {
case "${cur}" in case "${cur}" in
-*) -*)
__brewcomp " __brewcomp "
--all
--debug --debug
--dependents --dependents
--eval-all
--help --help
--quiet --quiet
--tag --tag
--total
--verbose --verbose
" "
return return
@ -2408,6 +2415,7 @@ _brew_uses() {
__brewcomp " __brewcomp "
--cask --cask
--debug --debug
--eval-all
--formula --formula
--help --help
--include-build --include-build

View File

@ -280,6 +280,7 @@ __fish_brew_complete_arg '-S' -l closed -d 'Search for only closed GitHub pull r
__fish_brew_complete_arg '-S' -l debian -d 'Search for text in the given database' __fish_brew_complete_arg '-S' -l debian -d 'Search for text in the given database'
__fish_brew_complete_arg '-S' -l debug -d 'Display any debugging information' __fish_brew_complete_arg '-S' -l debug -d 'Display any debugging information'
__fish_brew_complete_arg '-S' -l desc -d 'Search for formulae with a description matching text and casks with a name or description matching text' __fish_brew_complete_arg '-S' -l desc -d 'Search for formulae with a description matching text and casks with a name or description matching text'
__fish_brew_complete_arg '-S' -l eval-all -d 'Evaluate all available formulae and casks, whether installed or not, to search their descriptions. Implied if HOMEBREW_EVAL_ALL is set'
__fish_brew_complete_arg '-S' -l fedora -d 'Search for text in the given database' __fish_brew_complete_arg '-S' -l fedora -d 'Search for text in the given database'
__fish_brew_complete_arg '-S' -l fink -d 'Search for text in the given database' __fish_brew_complete_arg '-S' -l fink -d 'Search for text in the given database'
__fish_brew_complete_arg '-S' -l formula -d 'Search online and locally for formulae' __fish_brew_complete_arg '-S' -l formula -d 'Search online and locally for formulae'
@ -295,12 +296,12 @@ __fish_brew_complete_arg '-S' -l verbose -d 'Make some output more verbose'
__fish_brew_complete_cmd 'abv' 'Display brief statistics for your Homebrew installation' __fish_brew_complete_cmd 'abv' 'Display brief statistics for your Homebrew installation'
__fish_brew_complete_arg 'abv' -l all -d 'Print JSON of all available formulae'
__fish_brew_complete_arg 'abv' -l analytics -d 'List global Homebrew analytics data or, if specified, installation and build error data for formula (provided neither `HOMEBREW_NO_ANALYTICS` nor `HOMEBREW_NO_GITHUB_API` are set)' __fish_brew_complete_arg 'abv' -l analytics -d 'List global Homebrew analytics data or, if specified, installation and build error data for formula (provided neither `HOMEBREW_NO_ANALYTICS` nor `HOMEBREW_NO_GITHUB_API` are set)'
__fish_brew_complete_arg 'abv' -l cask -d 'Treat all named arguments as casks' __fish_brew_complete_arg 'abv' -l cask -d 'Treat all named arguments as casks'
__fish_brew_complete_arg 'abv' -l category -d 'Which type of analytics data to retrieve. The value for category must be `install`, `install-on-request` or `build-error`; `cask-install` or `os-version` may be specified if formula is not. The default is `install`' __fish_brew_complete_arg 'abv' -l category -d 'Which type of analytics data to retrieve. The value for category must be `install`, `install-on-request` or `build-error`; `cask-install` or `os-version` may be specified if formula is not. The default is `install`'
__fish_brew_complete_arg 'abv' -l days -d 'How many days of analytics data to retrieve. The value for days must be `30`, `90` or `365`. The default is `30`' __fish_brew_complete_arg 'abv' -l days -d 'How many days of analytics data to retrieve. The value for days must be `30`, `90` or `365`. The default is `30`'
__fish_brew_complete_arg 'abv' -l debug -d 'Display any debugging information' __fish_brew_complete_arg 'abv' -l debug -d 'Display any debugging information'
__fish_brew_complete_arg 'abv' -l eval-all -d 'Evaluate all available formulae and casks, whether installed or not, to print their JSON. Implied if HOMEBREW_EVAL_ALL is set'
__fish_brew_complete_arg 'abv' -l formula -d 'Treat all named arguments as formulae' __fish_brew_complete_arg 'abv' -l formula -d 'Treat all named arguments as formulae'
__fish_brew_complete_arg 'abv' -l github -d 'Open the GitHub source page for formula and cask in a browser. To view the history locally: `brew log -p` formula or cask' __fish_brew_complete_arg 'abv' -l github -d 'Open the GitHub source page for formula and cask in a browser. To view the history locally: `brew log -p` formula or cask'
__fish_brew_complete_arg 'abv' -l help -d 'Show this message' __fish_brew_complete_arg 'abv' -l help -d 'Show this message'
@ -332,6 +333,7 @@ __fish_brew_complete_arg 'audit' -l debug -d 'Display any debugging information'
__fish_brew_complete_arg 'audit' -l display-cop-names -d 'Include the RuboCop cop name for each violation in the output' __fish_brew_complete_arg 'audit' -l display-cop-names -d 'Include the RuboCop cop name for each violation in the output'
__fish_brew_complete_arg 'audit' -l display-failures-only -d 'Only display casks that fail the audit. This is the default for formulae' __fish_brew_complete_arg 'audit' -l display-failures-only -d 'Only display casks that fail the audit. This is the default for formulae'
__fish_brew_complete_arg 'audit' -l display-filename -d 'Prefix every line of output with the file or formula name being audited, to make output easy to grep' __fish_brew_complete_arg 'audit' -l display-filename -d 'Prefix every line of output with the file or formula name being audited, to make output easy to grep'
__fish_brew_complete_arg 'audit' -l eval-all -d 'Evaluate all available formulae and casks, whether installed or not, to audit them. Implied if HOMEBREW_EVAL_ALL is set'
__fish_brew_complete_arg 'audit' -l except -d 'Specify a comma-separated method list to skip running the methods named `audit_`method' __fish_brew_complete_arg 'audit' -l except -d 'Specify a comma-separated method list to skip running the methods named `audit_`method'
__fish_brew_complete_arg 'audit' -l except-cops -d 'Specify a comma-separated cops list to skip checking for violations of the listed RuboCop cops' __fish_brew_complete_arg 'audit' -l except-cops -d 'Specify a comma-separated cops list to skip checking for violations of the listed RuboCop cops'
__fish_brew_complete_arg 'audit' -l fix -d 'Fix style violations automatically using RuboCop\'s auto-correct feature' __fish_brew_complete_arg 'audit' -l fix -d 'Fix style violations automatically using RuboCop\'s auto-correct feature'
@ -565,12 +567,12 @@ __fish_brew_complete_arg 'create' -l verbose -d 'Make some output more verbose'
__fish_brew_complete_cmd 'deps' 'Show dependencies for formula' __fish_brew_complete_cmd 'deps' 'Show dependencies for formula'
__fish_brew_complete_arg 'deps' -l all -d 'List dependencies for all available formulae'
__fish_brew_complete_arg 'deps' -l annotate -d 'Mark any build, test, optional, or recommended dependencies as such in the output' __fish_brew_complete_arg 'deps' -l annotate -d 'Mark any build, test, optional, or recommended dependencies as such in the output'
__fish_brew_complete_arg 'deps' -l cask -d 'Treat all named arguments as casks' __fish_brew_complete_arg 'deps' -l cask -d 'Treat all named arguments as casks'
__fish_brew_complete_arg 'deps' -l debug -d 'Display any debugging information' __fish_brew_complete_arg 'deps' -l debug -d 'Display any debugging information'
__fish_brew_complete_arg 'deps' -l direct -d 'Show only the direct dependencies declared in the formula' __fish_brew_complete_arg 'deps' -l direct -d 'Show only the direct dependencies declared in the formula'
__fish_brew_complete_arg 'deps' -l dot -d 'Show text-based graph description in DOT format' __fish_brew_complete_arg 'deps' -l dot -d 'Show text-based graph description in DOT format'
__fish_brew_complete_arg 'deps' -l eval-all -d 'Evaluate all available formulae and casks, whether installed or not, to list their dependencies'
__fish_brew_complete_arg 'deps' -l for-each -d 'Switch into the mode used by the `--all` option, but only list dependencies for each provided formula, one formula per line. This is used for debugging the `--installed`/`--all` display mode' __fish_brew_complete_arg 'deps' -l for-each -d 'Switch into the mode used by the `--all` option, but only list dependencies for each provided formula, one formula per line. This is used for debugging the `--installed`/`--all` display mode'
__fish_brew_complete_arg 'deps' -l formula -d 'Treat all named arguments as formulae' __fish_brew_complete_arg 'deps' -l formula -d 'Treat all named arguments as formulae'
__fish_brew_complete_arg 'deps' -l full-name -d 'List dependencies by their full name' __fish_brew_complete_arg 'deps' -l full-name -d 'List dependencies by their full name'
@ -595,6 +597,7 @@ __fish_brew_complete_cmd 'desc' 'Display formula\'s name and one-line descriptio
__fish_brew_complete_arg 'desc' -l cask -d 'Treat all named arguments as casks' __fish_brew_complete_arg 'desc' -l cask -d 'Treat all named arguments as casks'
__fish_brew_complete_arg 'desc' -l debug -d 'Display any debugging information' __fish_brew_complete_arg 'desc' -l debug -d 'Display any debugging information'
__fish_brew_complete_arg 'desc' -l description -d 'Search just descriptions for text. If text is flanked by slashes, it is interpreted as a regular expression' __fish_brew_complete_arg 'desc' -l description -d 'Search just descriptions for text. If text is flanked by slashes, it is interpreted as a regular expression'
__fish_brew_complete_arg 'desc' -l eval-all -d 'Evaluate all available formulae and casks, whether installed or not, to search their descriptions. Implied if HOMEBREW_EVAL_ALL is set'
__fish_brew_complete_arg 'desc' -l formula -d 'Treat all named arguments as formulae' __fish_brew_complete_arg 'desc' -l formula -d 'Treat all named arguments as formulae'
__fish_brew_complete_arg 'desc' -l help -d 'Show this message' __fish_brew_complete_arg 'desc' -l help -d 'Show this message'
__fish_brew_complete_arg 'desc' -l name -d 'Search just names for text. If text is flanked by slashes, it is interpreted as a regular expression' __fish_brew_complete_arg 'desc' -l name -d 'Search just names for text. If text is flanked by slashes, it is interpreted as a regular expression'
@ -755,12 +758,12 @@ __fish_brew_complete_arg 'homepage; and not __fish_seen_argument -l formula -l f
__fish_brew_complete_cmd 'info' 'Display brief statistics for your Homebrew installation' __fish_brew_complete_cmd 'info' 'Display brief statistics for your Homebrew installation'
__fish_brew_complete_arg 'info' -l all -d 'Print JSON of all available formulae'
__fish_brew_complete_arg 'info' -l analytics -d 'List global Homebrew analytics data or, if specified, installation and build error data for formula (provided neither `HOMEBREW_NO_ANALYTICS` nor `HOMEBREW_NO_GITHUB_API` are set)' __fish_brew_complete_arg 'info' -l analytics -d 'List global Homebrew analytics data or, if specified, installation and build error data for formula (provided neither `HOMEBREW_NO_ANALYTICS` nor `HOMEBREW_NO_GITHUB_API` are set)'
__fish_brew_complete_arg 'info' -l cask -d 'Treat all named arguments as casks' __fish_brew_complete_arg 'info' -l cask -d 'Treat all named arguments as casks'
__fish_brew_complete_arg 'info' -l category -d 'Which type of analytics data to retrieve. The value for category must be `install`, `install-on-request` or `build-error`; `cask-install` or `os-version` may be specified if formula is not. The default is `install`' __fish_brew_complete_arg 'info' -l category -d 'Which type of analytics data to retrieve. The value for category must be `install`, `install-on-request` or `build-error`; `cask-install` or `os-version` may be specified if formula is not. The default is `install`'
__fish_brew_complete_arg 'info' -l days -d 'How many days of analytics data to retrieve. The value for days must be `30`, `90` or `365`. The default is `30`' __fish_brew_complete_arg 'info' -l days -d 'How many days of analytics data to retrieve. The value for days must be `30`, `90` or `365`. The default is `30`'
__fish_brew_complete_arg 'info' -l debug -d 'Display any debugging information' __fish_brew_complete_arg 'info' -l debug -d 'Display any debugging information'
__fish_brew_complete_arg 'info' -l eval-all -d 'Evaluate all available formulae and casks, whether installed or not, to print their JSON. Implied if HOMEBREW_EVAL_ALL is set'
__fish_brew_complete_arg 'info' -l formula -d 'Treat all named arguments as formulae' __fish_brew_complete_arg 'info' -l formula -d 'Treat all named arguments as formulae'
__fish_brew_complete_arg 'info' -l github -d 'Open the GitHub source page for formula and cask in a browser. To view the history locally: `brew log -p` formula or cask' __fish_brew_complete_arg 'info' -l github -d 'Open the GitHub source page for formula and cask in a browser. To view the history locally: `brew log -p` formula or cask'
__fish_brew_complete_arg 'info' -l help -d 'Show this message' __fish_brew_complete_arg 'info' -l help -d 'Show this message'
@ -891,17 +894,17 @@ __fish_brew_complete_arg 'irb' -l verbose -d 'Make some output more verbose'
__fish_brew_complete_cmd 'lc' 'Check for newer versions of formulae and/or casks from upstream' __fish_brew_complete_cmd 'lc' 'Check for newer versions of formulae and/or casks from upstream'
__fish_brew_complete_arg 'lc' -l all -d 'Check all available formulae/casks'
__fish_brew_complete_arg 'lc' -l cask -d 'Only check casks' __fish_brew_complete_arg 'lc' -l cask -d 'Only check casks'
__fish_brew_complete_arg 'lc' -l debug -d 'Display any debugging information' __fish_brew_complete_arg 'lc' -l debug -d 'Display any debugging information'
__fish_brew_complete_arg 'lc' -l eval-all -d 'Evaluate all available formulae and casks, whether installed or not, to check them'
__fish_brew_complete_arg 'lc' -l formula -d 'Only check formulae' __fish_brew_complete_arg 'lc' -l formula -d 'Only check formulae'
__fish_brew_complete_arg 'lc' -l full-name -d 'Print formulae/casks with fully-qualified names' __fish_brew_complete_arg 'lc' -l full-name -d 'Print formulae and casks with fully-qualified names'
__fish_brew_complete_arg 'lc' -l help -d 'Show this message' __fish_brew_complete_arg 'lc' -l help -d 'Show this message'
__fish_brew_complete_arg 'lc' -l installed -d 'Check formulae/casks that are currently installed' __fish_brew_complete_arg 'lc' -l installed -d 'Check formulae and casks that are currently installed'
__fish_brew_complete_arg 'lc' -l json -d 'Output information in JSON format' __fish_brew_complete_arg 'lc' -l json -d 'Output information in JSON format'
__fish_brew_complete_arg 'lc' -l newer-only -d 'Show the latest version only if it\'s newer than the formula/cask' __fish_brew_complete_arg 'lc' -l newer-only -d 'Show the latest version only if it\'s newer than the formula/cask'
__fish_brew_complete_arg 'lc' -l quiet -d 'Suppress warnings, don\'t print a progress bar for JSON output' __fish_brew_complete_arg 'lc' -l quiet -d 'Suppress warnings, don\'t print a progress bar for JSON output'
__fish_brew_complete_arg 'lc' -l tap -d 'Check formulae/casks within the given tap, specified as user`/`repo' __fish_brew_complete_arg 'lc' -l tap -d 'Check formulae and casks within the given tap, specified as user`/`repo'
__fish_brew_complete_arg 'lc' -l verbose -d 'Make some output more verbose' __fish_brew_complete_arg 'lc' -l verbose -d 'Make some output more verbose'
__fish_brew_complete_arg 'lc; and not __fish_seen_argument -l cask -l casks' -a '(__fish_brew_suggest_formulae_all)' __fish_brew_complete_arg 'lc; and not __fish_seen_argument -l cask -l casks' -a '(__fish_brew_suggest_formulae_all)'
__fish_brew_complete_arg 'lc; and not __fish_seen_argument -l formula -l formulae' -a '(__fish_brew_suggest_casks_all)' __fish_brew_complete_arg 'lc; and not __fish_seen_argument -l formula -l formulae' -a '(__fish_brew_suggest_casks_all)'
@ -960,17 +963,17 @@ __fish_brew_complete_arg 'list; and not __fish_seen_argument -l formula -l formu
__fish_brew_complete_cmd 'livecheck' 'Check for newer versions of formulae and/or casks from upstream' __fish_brew_complete_cmd 'livecheck' 'Check for newer versions of formulae and/or casks from upstream'
__fish_brew_complete_arg 'livecheck' -l all -d 'Check all available formulae/casks'
__fish_brew_complete_arg 'livecheck' -l cask -d 'Only check casks' __fish_brew_complete_arg 'livecheck' -l cask -d 'Only check casks'
__fish_brew_complete_arg 'livecheck' -l debug -d 'Display any debugging information' __fish_brew_complete_arg 'livecheck' -l debug -d 'Display any debugging information'
__fish_brew_complete_arg 'livecheck' -l eval-all -d 'Evaluate all available formulae and casks, whether installed or not, to check them'
__fish_brew_complete_arg 'livecheck' -l formula -d 'Only check formulae' __fish_brew_complete_arg 'livecheck' -l formula -d 'Only check formulae'
__fish_brew_complete_arg 'livecheck' -l full-name -d 'Print formulae/casks with fully-qualified names' __fish_brew_complete_arg 'livecheck' -l full-name -d 'Print formulae and casks with fully-qualified names'
__fish_brew_complete_arg 'livecheck' -l help -d 'Show this message' __fish_brew_complete_arg 'livecheck' -l help -d 'Show this message'
__fish_brew_complete_arg 'livecheck' -l installed -d 'Check formulae/casks that are currently installed' __fish_brew_complete_arg 'livecheck' -l installed -d 'Check formulae and casks that are currently installed'
__fish_brew_complete_arg 'livecheck' -l json -d 'Output information in JSON format' __fish_brew_complete_arg 'livecheck' -l json -d 'Output information in JSON format'
__fish_brew_complete_arg 'livecheck' -l newer-only -d 'Show the latest version only if it\'s newer than the formula/cask' __fish_brew_complete_arg 'livecheck' -l newer-only -d 'Show the latest version only if it\'s newer than the formula/cask'
__fish_brew_complete_arg 'livecheck' -l quiet -d 'Suppress warnings, don\'t print a progress bar for JSON output' __fish_brew_complete_arg 'livecheck' -l quiet -d 'Suppress warnings, don\'t print a progress bar for JSON output'
__fish_brew_complete_arg 'livecheck' -l tap -d 'Check formulae/casks within the given tap, specified as user`/`repo' __fish_brew_complete_arg 'livecheck' -l tap -d 'Check formulae and casks within the given tap, specified as user`/`repo'
__fish_brew_complete_arg 'livecheck' -l verbose -d 'Make some output more verbose' __fish_brew_complete_arg 'livecheck' -l verbose -d 'Make some output more verbose'
__fish_brew_complete_arg 'livecheck; and not __fish_seen_argument -l cask -l casks' -a '(__fish_brew_suggest_formulae_all)' __fish_brew_complete_arg 'livecheck; and not __fish_seen_argument -l cask -l casks' -a '(__fish_brew_suggest_formulae_all)'
__fish_brew_complete_arg 'livecheck; and not __fish_seen_argument -l formula -l formulae' -a '(__fish_brew_suggest_casks_all)' __fish_brew_complete_arg 'livecheck; and not __fish_seen_argument -l formula -l formulae' -a '(__fish_brew_suggest_casks_all)'
@ -1043,10 +1046,10 @@ __fish_brew_complete_arg 'missing' -a '(__fish_brew_suggest_formulae_all)'
__fish_brew_complete_cmd 'options' 'Show install options specific to formula' __fish_brew_complete_cmd 'options' 'Show install options specific to formula'
__fish_brew_complete_arg 'options' -l all -d 'Show options for all available formulae'
__fish_brew_complete_arg 'options' -l command -d 'Show options for the specified command' __fish_brew_complete_arg 'options' -l command -d 'Show options for the specified command'
__fish_brew_complete_arg 'options' -l compact -d 'Show all options on a single line separated by spaces' __fish_brew_complete_arg 'options' -l compact -d 'Show all options on a single line separated by spaces'
__fish_brew_complete_arg 'options' -l debug -d 'Display any debugging information' __fish_brew_complete_arg 'options' -l debug -d 'Display any debugging information'
__fish_brew_complete_arg 'options' -l eval-all -d 'Evaluate all available formulae and casks, whether installed or not, to show their options'
__fish_brew_complete_arg 'options' -l help -d 'Show this message' __fish_brew_complete_arg 'options' -l help -d 'Show this message'
__fish_brew_complete_arg 'options' -l installed -d 'Show options for formulae that are currently installed' __fish_brew_complete_arg 'options' -l installed -d 'Show options for formulae that are currently installed'
__fish_brew_complete_arg 'options' -l quiet -d 'Make some output more quiet' __fish_brew_complete_arg 'options' -l quiet -d 'Make some output more quiet'
@ -1164,6 +1167,7 @@ __fish_brew_complete_arg 'prof' -a '(__fish_brew_suggest_commands)'
__fish_brew_complete_cmd 'readall' 'Import all items from the specified tap, or from all installed taps if none is provided' __fish_brew_complete_cmd 'readall' 'Import all items from the specified tap, or from all installed taps if none is provided'
__fish_brew_complete_arg 'readall' -l aliases -d 'Verify any alias symlinks in each tap' __fish_brew_complete_arg 'readall' -l aliases -d 'Verify any alias symlinks in each tap'
__fish_brew_complete_arg 'readall' -l debug -d 'Display any debugging information' __fish_brew_complete_arg 'readall' -l debug -d 'Display any debugging information'
__fish_brew_complete_arg 'readall' -l eval-all -d 'Evaluate all available formulae and casks, whether installed or not. Implied if HOMEBREW_EVAL_ALL is set'
__fish_brew_complete_arg 'readall' -l help -d 'Show this message' __fish_brew_complete_arg 'readall' -l help -d 'Show this message'
__fish_brew_complete_arg 'readall' -l quiet -d 'Make some output more quiet' __fish_brew_complete_arg 'readall' -l quiet -d 'Make some output more quiet'
__fish_brew_complete_arg 'readall' -l syntax -d 'Syntax-check all of Homebrew\'s Ruby files (if no `tap` is passed)' __fish_brew_complete_arg 'readall' -l syntax -d 'Syntax-check all of Homebrew\'s Ruby files (if no `tap` is passed)'
@ -1265,6 +1269,7 @@ __fish_brew_complete_arg 'search' -l closed -d 'Search for only closed GitHub pu
__fish_brew_complete_arg 'search' -l debian -d 'Search for text in the given database' __fish_brew_complete_arg 'search' -l debian -d 'Search for text in the given database'
__fish_brew_complete_arg 'search' -l debug -d 'Display any debugging information' __fish_brew_complete_arg 'search' -l debug -d 'Display any debugging information'
__fish_brew_complete_arg 'search' -l desc -d 'Search for formulae with a description matching text and casks with a name or description matching text' __fish_brew_complete_arg 'search' -l desc -d 'Search for formulae with a description matching text and casks with a name or description matching text'
__fish_brew_complete_arg 'search' -l eval-all -d 'Evaluate all available formulae and casks, whether installed or not, to search their descriptions. Implied if HOMEBREW_EVAL_ALL is set'
__fish_brew_complete_arg 'search' -l fedora -d 'Search for text in the given database' __fish_brew_complete_arg 'search' -l fedora -d 'Search for text in the given database'
__fish_brew_complete_arg 'search' -l fink -d 'Search for text in the given database' __fish_brew_complete_arg 'search' -l fink -d 'Search for text in the given database'
__fish_brew_complete_arg 'search' -l formula -d 'Search online and locally for formulae' __fish_brew_complete_arg 'search' -l formula -d 'Search online and locally for formulae'
@ -1308,6 +1313,7 @@ __fish_brew_complete_arg 'style; and not __fish_seen_argument -l formula -l form
__fish_brew_complete_cmd 'tap' 'Tap a formula repository' __fish_brew_complete_cmd 'tap' 'Tap a formula repository'
__fish_brew_complete_arg 'tap' -l custom-remote -d 'Install or change a tap with a custom remote. Useful for mirrors' __fish_brew_complete_arg 'tap' -l custom-remote -d 'Install or change a tap with a custom remote. Useful for mirrors'
__fish_brew_complete_arg 'tap' -l debug -d 'Display any debugging information' __fish_brew_complete_arg 'tap' -l debug -d 'Display any debugging information'
__fish_brew_complete_arg 'tap' -l eval-all -d 'Evaluate all the formulae, casks and aliases in the new tap to check validity. Implied if HOMEBREW_EVAL_ALL is set'
__fish_brew_complete_arg 'tap' -l force-auto-update -d 'Auto-update tap even if it is not hosted on GitHub. By default, only taps hosted on GitHub are auto-updated (for performance reasons)' __fish_brew_complete_arg 'tap' -l force-auto-update -d 'Auto-update tap even if it is not hosted on GitHub. By default, only taps hosted on GitHub are auto-updated (for performance reasons)'
__fish_brew_complete_arg 'tap' -l help -d 'Show this message' __fish_brew_complete_arg 'tap' -l help -d 'Show this message'
__fish_brew_complete_arg 'tap' -l list-pinned -d 'List all pinned taps' __fish_brew_complete_arg 'tap' -l list-pinned -d 'List all pinned taps'
@ -1341,7 +1347,6 @@ __fish_brew_complete_arg 'tap-new' -a '(__fish_brew_suggest_taps_installed)'
__fish_brew_complete_cmd 'tc' 'Check for typechecking errors using Sorbet' __fish_brew_complete_cmd 'tc' 'Check for typechecking errors using Sorbet'
__fish_brew_complete_arg 'tc' -l all -d 'Regenerate all RBI files rather than just updated gems'
__fish_brew_complete_arg 'tc' -l debug -d 'Display any debugging information' __fish_brew_complete_arg 'tc' -l debug -d 'Display any debugging information'
__fish_brew_complete_arg 'tc' -l dir -d 'Typecheck all files in a specific directory' __fish_brew_complete_arg 'tc' -l dir -d 'Typecheck all files in a specific directory'
__fish_brew_complete_arg 'tc' -l file -d 'Typecheck a single file' __fish_brew_complete_arg 'tc' -l file -d 'Typecheck a single file'
@ -1351,6 +1356,7 @@ __fish_brew_complete_arg 'tc' -l ignore -d 'Ignores input files that contain the
__fish_brew_complete_arg 'tc' -l quiet -d 'Silence all non-critical errors' __fish_brew_complete_arg 'tc' -l quiet -d 'Silence all non-critical errors'
__fish_brew_complete_arg 'tc' -l suggest-typed -d 'Try upgrading `typed` sigils' __fish_brew_complete_arg 'tc' -l suggest-typed -d 'Try upgrading `typed` sigils'
__fish_brew_complete_arg 'tc' -l update -d 'Update RBI files' __fish_brew_complete_arg 'tc' -l update -d 'Update RBI files'
__fish_brew_complete_arg 'tc' -l update-all -d 'Update all RBI files rather than just updated gems'
__fish_brew_complete_arg 'tc' -l verbose -d 'Make some output more verbose' __fish_brew_complete_arg 'tc' -l verbose -d 'Make some output more verbose'
@ -1382,7 +1388,6 @@ __fish_brew_complete_arg 'tests' -l verbose -d 'Make some output more verbose'
__fish_brew_complete_cmd 'typecheck' 'Check for typechecking errors using Sorbet' __fish_brew_complete_cmd 'typecheck' 'Check for typechecking errors using Sorbet'
__fish_brew_complete_arg 'typecheck' -l all -d 'Regenerate all RBI files rather than just updated gems'
__fish_brew_complete_arg 'typecheck' -l debug -d 'Display any debugging information' __fish_brew_complete_arg 'typecheck' -l debug -d 'Display any debugging information'
__fish_brew_complete_arg 'typecheck' -l dir -d 'Typecheck all files in a specific directory' __fish_brew_complete_arg 'typecheck' -l dir -d 'Typecheck all files in a specific directory'
__fish_brew_complete_arg 'typecheck' -l file -d 'Typecheck a single file' __fish_brew_complete_arg 'typecheck' -l file -d 'Typecheck a single file'
@ -1392,16 +1397,18 @@ __fish_brew_complete_arg 'typecheck' -l ignore -d 'Ignores input files that cont
__fish_brew_complete_arg 'typecheck' -l quiet -d 'Silence all non-critical errors' __fish_brew_complete_arg 'typecheck' -l quiet -d 'Silence all non-critical errors'
__fish_brew_complete_arg 'typecheck' -l suggest-typed -d 'Try upgrading `typed` sigils' __fish_brew_complete_arg 'typecheck' -l suggest-typed -d 'Try upgrading `typed` sigils'
__fish_brew_complete_arg 'typecheck' -l update -d 'Update RBI files' __fish_brew_complete_arg 'typecheck' -l update -d 'Update RBI files'
__fish_brew_complete_arg 'typecheck' -l update-all -d 'Update all RBI files rather than just updated gems'
__fish_brew_complete_arg 'typecheck' -l verbose -d 'Make some output more verbose' __fish_brew_complete_arg 'typecheck' -l verbose -d 'Make some output more verbose'
__fish_brew_complete_cmd 'unbottled' 'Show the unbottled dependents of formulae' __fish_brew_complete_cmd 'unbottled' 'Show the unbottled dependents of formulae'
__fish_brew_complete_arg 'unbottled' -l all -d 'Print the number of unbottled and total formulae'
__fish_brew_complete_arg 'unbottled' -l debug -d 'Display any debugging information' __fish_brew_complete_arg 'unbottled' -l debug -d 'Display any debugging information'
__fish_brew_complete_arg 'unbottled' -l dependents -d 'Skip getting analytics data and sort by number of dependents instead' __fish_brew_complete_arg 'unbottled' -l dependents -d 'Skip getting analytics data and sort by number of dependents instead'
__fish_brew_complete_arg 'unbottled' -l eval-all -d 'Evaluate all available formulae and casks, whether installed or not, to check them. Implied if HOMEBREW_EVAL_ALL is set'
__fish_brew_complete_arg 'unbottled' -l help -d 'Show this message' __fish_brew_complete_arg 'unbottled' -l help -d 'Show this message'
__fish_brew_complete_arg 'unbottled' -l quiet -d 'Make some output more quiet' __fish_brew_complete_arg 'unbottled' -l quiet -d 'Make some output more quiet'
__fish_brew_complete_arg 'unbottled' -l tag -d 'Use the specified bottle tag (e.g. `big_sur`) instead of the current OS' __fish_brew_complete_arg 'unbottled' -l tag -d 'Use the specified bottle tag (e.g. `big_sur`) instead of the current OS'
__fish_brew_complete_arg 'unbottled' -l total -d 'Print the number of unbottled and total formulae'
__fish_brew_complete_arg 'unbottled' -l verbose -d 'Make some output more verbose' __fish_brew_complete_arg 'unbottled' -l verbose -d 'Make some output more verbose'
__fish_brew_complete_arg 'unbottled' -a '(__fish_brew_suggest_formulae_all)' __fish_brew_complete_arg 'unbottled' -a '(__fish_brew_suggest_formulae_all)'
@ -1596,6 +1603,7 @@ __fish_brew_complete_arg 'upgrade; and not __fish_seen_argument -l formula -l fo
__fish_brew_complete_cmd 'uses' 'Show formulae and casks that specify formula as a dependency; that is, show dependents of formula' __fish_brew_complete_cmd 'uses' 'Show formulae and casks that specify formula as a dependency; that is, show dependents of formula'
__fish_brew_complete_arg 'uses' -l cask -d 'Include only casks' __fish_brew_complete_arg 'uses' -l cask -d 'Include only casks'
__fish_brew_complete_arg 'uses' -l debug -d 'Display any debugging information' __fish_brew_complete_arg 'uses' -l debug -d 'Display any debugging information'
__fish_brew_complete_arg 'uses' -l eval-all -d 'Evaluate all available formulae and casks, whether installed or not, to show their dependents'
__fish_brew_complete_arg 'uses' -l formula -d 'Include only formulae' __fish_brew_complete_arg 'uses' -l formula -d 'Include only formulae'
__fish_brew_complete_arg 'uses' -l help -d 'Show this message' __fish_brew_complete_arg 'uses' -l help -d 'Show this message'
__fish_brew_complete_arg 'uses' -l include-build -d 'Include all formulae that specify formula as `:build` type dependency' __fish_brew_complete_arg 'uses' -l include-build -d 'Include all formulae that specify formula as `:build` type dependency'

View File

@ -356,6 +356,7 @@ _brew__s() {
'(--repology --macports --fink --opensuse --fedora --archlinux --ubuntu)--debian[Search for text in the given database]' \ '(--repology --macports --fink --opensuse --fedora --archlinux --ubuntu)--debian[Search for text in the given database]' \
'--debug[Display any debugging information]' \ '--debug[Display any debugging information]' \
'(--pull-request)--desc[Search for formulae with a description matching text and casks with a name or description matching text]' \ '(--pull-request)--desc[Search for formulae with a description matching text and casks with a name or description matching text]' \
'--eval-all[Evaluate all available formulae and casks, whether installed or not, to search their descriptions. Implied if HOMEBREW_EVAL_ALL is set]' \
'(--repology --macports --fink --opensuse --archlinux --debian --ubuntu)--fedora[Search for text in the given database]' \ '(--repology --macports --fink --opensuse --archlinux --debian --ubuntu)--fedora[Search for text in the given database]' \
'(--repology --macports --opensuse --fedora --archlinux --debian --ubuntu)--fink[Search for text in the given database]' \ '(--repology --macports --opensuse --fedora --archlinux --debian --ubuntu)--fink[Search for text in the given database]' \
'--formula[Search online and locally for formulae]' \ '--formula[Search online and locally for formulae]' \
@ -373,14 +374,14 @@ _brew__s() {
# brew abv # brew abv
_brew_abv() { _brew_abv() {
_arguments \ _arguments \
'(--installed)--all[Print JSON of all available formulae]' \
'(--bottle)--analytics[List global Homebrew analytics data or, if specified, installation and build error data for formula (provided neither `HOMEBREW_NO_ANALYTICS` nor `HOMEBREW_NO_GITHUB_API` are set)]' \ '(--bottle)--analytics[List global Homebrew analytics data or, if specified, installation and build error data for formula (provided neither `HOMEBREW_NO_ANALYTICS` nor `HOMEBREW_NO_GITHUB_API` are set)]' \
'--category[Which type of analytics data to retrieve. The value for category must be `install`, `install-on-request` or `build-error`; `cask-install` or `os-version` may be specified if formula is not. The default is `install`]' \ '--category[Which type of analytics data to retrieve. The value for category must be `install`, `install-on-request` or `build-error`; `cask-install` or `os-version` may be specified if formula is not. The default is `install`]' \
'--days[How many days of analytics data to retrieve. The value for days must be `30`, `90` or `365`. The default is `30`]' \ '--days[How many days of analytics data to retrieve. The value for days must be `30`, `90` or `365`. The default is `30`]' \
'--debug[Display any debugging information]' \ '--debug[Display any debugging information]' \
'(--installed)--eval-all[Evaluate all available formulae and casks, whether installed or not, to print their JSON. Implied if HOMEBREW_EVAL_ALL is set]' \
'(--bottle)--github[Open the GitHub source page for formula and cask in a browser. To view the history locally: `brew log -p` formula or cask]' \ '(--bottle)--github[Open the GitHub source page for formula and cask in a browser. To view the history locally: `brew log -p` formula or cask]' \
'--help[Show this message]' \ '--help[Show this message]' \
'(--all)--installed[Print JSON of formulae that are currently installed]' \ '(--eval-all --all)--installed[Print JSON of formulae that are currently installed]' \
'--json[Print a JSON representation. Currently the default value for version is `v1` for formula. For formula and cask use `v2`. See the docs for examples of using the JSON output: https://docs.brew.sh/Querying-Brew]' \ '--json[Print a JSON representation. Currently the default value for version is `v1` for formula. For formula and cask use `v2`. See the docs for examples of using the JSON output: https://docs.brew.sh/Querying-Brew]' \
'--quiet[Make some output more quiet]' \ '--quiet[Make some output more quiet]' \
'--variations[Include the variations hash in each formula'\''s JSON output]' \ '--variations[Include the variations hash in each formula'\''s JSON output]' \
@ -413,6 +414,7 @@ _brew_audit() {
'(--skip-style --only-cops --except-cops)--display-cop-names[Include the RuboCop cop name for each violation in the output]' \ '(--skip-style --only-cops --except-cops)--display-cop-names[Include the RuboCop cop name for each violation in the output]' \
'--display-failures-only[Only display casks that fail the audit. This is the default for formulae]' \ '--display-failures-only[Only display casks that fail the audit. This is the default for formulae]' \
'--display-filename[Prefix every line of output with the file or formula name being audited, to make output easy to grep]' \ '--display-filename[Prefix every line of output with the file or formula name being audited, to make output easy to grep]' \
'--eval-all[Evaluate all available formulae and casks, whether installed or not, to audit them. Implied if HOMEBREW_EVAL_ALL is set]' \
'(--only)--except[Specify a comma-separated method list to skip running the methods named `audit_`method]' \ '(--only)--except[Specify a comma-separated method list to skip running the methods named `audit_`method]' \
'(--only-cops --strict --only-cops --only --display-cop-names)--except-cops[Specify a comma-separated cops list to skip checking for violations of the listed RuboCop cops]' \ '(--only-cops --strict --only-cops --only --display-cop-names)--except-cops[Specify a comma-separated cops list to skip checking for violations of the listed RuboCop cops]' \
'--fix[Fix style violations automatically using RuboCop'\''s auto-correct feature]' \ '--fix[Fix style violations automatically using RuboCop'\''s auto-correct feature]' \
@ -695,11 +697,11 @@ _brew_create() {
# brew deps # brew deps
_brew_deps() { _brew_deps() {
_arguments \ _arguments \
'(--installed)--all[List dependencies for all available formulae]' \
'--annotate[Mark any build, test, optional, or recommended dependencies as such in the output]' \ '--annotate[Mark any build, test, optional, or recommended dependencies as such in the output]' \
'--debug[Display any debugging information]' \ '--debug[Display any debugging information]' \
'--direct[Show only the direct dependencies declared in the formula]' \ '--direct[Show only the direct dependencies declared in the formula]' \
'--dot[Show text-based graph description in DOT format]' \ '--dot[Show text-based graph description in DOT format]' \
'(--installed)--eval-all[Evaluate all available formulae and casks, whether installed or not, to list their dependencies]' \
'--for-each[Switch into the mode used by the `--all` option, but only list dependencies for each provided formula, one formula per line. This is used for debugging the `--installed`/`--all` display mode]' \ '--for-each[Switch into the mode used by the `--all` option, but only list dependencies for each provided formula, one formula per line. This is used for debugging the `--installed`/`--all` display mode]' \
'--full-name[List dependencies by their full name]' \ '--full-name[List dependencies by their full name]' \
'(--tree)--graph[Show dependencies as a directed graph]' \ '(--tree)--graph[Show dependencies as a directed graph]' \
@ -708,7 +710,7 @@ _brew_deps() {
'--include-optional[Include `:optional` dependencies for formula]' \ '--include-optional[Include `:optional` dependencies for formula]' \
'--include-requirements[Include requirements in addition to dependencies for formula]' \ '--include-requirements[Include requirements in addition to dependencies for formula]' \
'--include-test[Include `:test` dependencies for formula (non-recursive)]' \ '--include-test[Include `:test` dependencies for formula (non-recursive)]' \
'(--all)--installed[List dependencies for formulae that are currently installed. If formula is specified, list only its dependencies that are currently installed]' \ '(--eval-all --all)--installed[List dependencies for formulae that are currently installed. If formula is specified, list only its dependencies that are currently installed]' \
'--quiet[Make some output more quiet]' \ '--quiet[Make some output more quiet]' \
'--skip-recommended[Skip `:recommended` dependencies for formula]' \ '--skip-recommended[Skip `:recommended` dependencies for formula]' \
'--topological[Sort dependencies in topological order]' \ '--topological[Sort dependencies in topological order]' \
@ -728,6 +730,7 @@ _brew_desc() {
_arguments \ _arguments \
'--debug[Display any debugging information]' \ '--debug[Display any debugging information]' \
'(--search --name)--description[Search just descriptions for text. If text is flanked by slashes, it is interpreted as a regular expression]' \ '(--search --name)--description[Search just descriptions for text. If text is flanked by slashes, it is interpreted as a regular expression]' \
'--eval-all[Evaluate all available formulae and casks, whether installed or not, to search their descriptions. Implied if HOMEBREW_EVAL_ALL is set]' \
'--help[Show this message]' \ '--help[Show this message]' \
'(--search --description)--name[Search just names for text. If text is flanked by slashes, it is interpreted as a regular expression]' \ '(--search --description)--name[Search just names for text. If text is flanked by slashes, it is interpreted as a regular expression]' \
'--quiet[Make some output more quiet]' \ '--quiet[Make some output more quiet]' \
@ -934,14 +937,14 @@ _brew_homepage() {
# brew info # brew info
_brew_info() { _brew_info() {
_arguments \ _arguments \
'(--installed)--all[Print JSON of all available formulae]' \
'(--bottle)--analytics[List global Homebrew analytics data or, if specified, installation and build error data for formula (provided neither `HOMEBREW_NO_ANALYTICS` nor `HOMEBREW_NO_GITHUB_API` are set)]' \ '(--bottle)--analytics[List global Homebrew analytics data or, if specified, installation and build error data for formula (provided neither `HOMEBREW_NO_ANALYTICS` nor `HOMEBREW_NO_GITHUB_API` are set)]' \
'--category[Which type of analytics data to retrieve. The value for category must be `install`, `install-on-request` or `build-error`; `cask-install` or `os-version` may be specified if formula is not. The default is `install`]' \ '--category[Which type of analytics data to retrieve. The value for category must be `install`, `install-on-request` or `build-error`; `cask-install` or `os-version` may be specified if formula is not. The default is `install`]' \
'--days[How many days of analytics data to retrieve. The value for days must be `30`, `90` or `365`. The default is `30`]' \ '--days[How many days of analytics data to retrieve. The value for days must be `30`, `90` or `365`. The default is `30`]' \
'--debug[Display any debugging information]' \ '--debug[Display any debugging information]' \
'(--installed)--eval-all[Evaluate all available formulae and casks, whether installed or not, to print their JSON. Implied if HOMEBREW_EVAL_ALL is set]' \
'(--bottle)--github[Open the GitHub source page for formula and cask in a browser. To view the history locally: `brew log -p` formula or cask]' \ '(--bottle)--github[Open the GitHub source page for formula and cask in a browser. To view the history locally: `brew log -p` formula or cask]' \
'--help[Show this message]' \ '--help[Show this message]' \
'(--all)--installed[Print JSON of formulae that are currently installed]' \ '(--eval-all --all)--installed[Print JSON of formulae that are currently installed]' \
'--json[Print a JSON representation. Currently the default value for version is `v1` for formula. For formula and cask use `v2`. See the docs for examples of using the JSON output: https://docs.brew.sh/Querying-Brew]' \ '--json[Print a JSON representation. Currently the default value for version is `v1` for formula. For formula and cask use `v2`. See the docs for examples of using the JSON output: https://docs.brew.sh/Querying-Brew]' \
'--quiet[Make some output more quiet]' \ '--quiet[Make some output more quiet]' \
'--variations[Include the variations hash in each formula'\''s JSON output]' \ '--variations[Include the variations hash in each formula'\''s JSON output]' \
@ -1086,15 +1089,15 @@ _brew_irb() {
# brew lc # brew lc
_brew_lc() { _brew_lc() {
_arguments \ _arguments \
'(--tap --installed)--all[Check all available formulae/casks]' \
'(--json)--debug[Display any debugging information]' \ '(--json)--debug[Display any debugging information]' \
'--full-name[Print formulae/casks with fully-qualified names]' \ '(--tap --installed)--eval-all[Evaluate all available formulae and casks, whether installed or not, to check them]' \
'--full-name[Print formulae and casks with fully-qualified names]' \
'--help[Show this message]' \ '--help[Show this message]' \
'(--tap --all)--installed[Check formulae/casks that are currently installed]' \ '(--tap --eval-all)--installed[Check formulae and casks that are currently installed]' \
'(--debug)--json[Output information in JSON format]' \ '(--debug)--json[Output information in JSON format]' \
'--newer-only[Show the latest version only if it'\''s newer than the formula/cask]' \ '--newer-only[Show the latest version only if it'\''s newer than the formula/cask]' \
'--quiet[Suppress warnings, don'\''t print a progress bar for JSON output]' \ '--quiet[Suppress warnings, don'\''t print a progress bar for JSON output]' \
'(--all --installed)--tap[Check formulae/casks within the given tap, specified as user`/`repo]' \ '(--eval-all --installed)--tap[Check formulae and casks within the given tap, specified as user`/`repo]' \
'--verbose[Make some output more verbose]' \ '--verbose[Make some output more verbose]' \
- formula \ - formula \
'(--cask)--formula[Only check formulae]' \ '(--cask)--formula[Only check formulae]' \
@ -1171,15 +1174,15 @@ _brew_list() {
# brew livecheck # brew livecheck
_brew_livecheck() { _brew_livecheck() {
_arguments \ _arguments \
'(--tap --installed)--all[Check all available formulae/casks]' \
'(--json)--debug[Display any debugging information]' \ '(--json)--debug[Display any debugging information]' \
'--full-name[Print formulae/casks with fully-qualified names]' \ '(--tap --installed)--eval-all[Evaluate all available formulae and casks, whether installed or not, to check them]' \
'--full-name[Print formulae and casks with fully-qualified names]' \
'--help[Show this message]' \ '--help[Show this message]' \
'(--tap --all)--installed[Check formulae/casks that are currently installed]' \ '(--tap --eval-all)--installed[Check formulae and casks that are currently installed]' \
'(--debug)--json[Output information in JSON format]' \ '(--debug)--json[Output information in JSON format]' \
'--newer-only[Show the latest version only if it'\''s newer than the formula/cask]' \ '--newer-only[Show the latest version only if it'\''s newer than the formula/cask]' \
'--quiet[Suppress warnings, don'\''t print a progress bar for JSON output]' \ '--quiet[Suppress warnings, don'\''t print a progress bar for JSON output]' \
'(--all --installed)--tap[Check formulae/casks within the given tap, specified as user`/`repo]' \ '(--eval-all --installed)--tap[Check formulae and casks within the given tap, specified as user`/`repo]' \
'--verbose[Make some output more verbose]' \ '--verbose[Make some output more verbose]' \
- formula \ - formula \
'(--cask)--formula[Only check formulae]' \ '(--cask)--formula[Only check formulae]' \
@ -1275,10 +1278,10 @@ _brew_missing() {
# brew options # brew options
_brew_options() { _brew_options() {
_arguments \ _arguments \
'(--installed --command)--all[Show options for all available formulae]' \
'(--installed --all)--command[Show options for the specified command]' \ '(--installed --all)--command[Show options for the specified command]' \
'--compact[Show all options on a single line separated by spaces]' \ '--compact[Show all options on a single line separated by spaces]' \
'--debug[Display any debugging information]' \ '--debug[Display any debugging information]' \
'--eval-all[Evaluate all available formulae and casks, whether installed or not, to show their options]' \
'--help[Show this message]' \ '--help[Show this message]' \
'(--all --command)--installed[Show options for formulae that are currently installed]' \ '(--all --command)--installed[Show options for formulae that are currently installed]' \
'--quiet[Make some output more quiet]' \ '--quiet[Make some output more quiet]' \
@ -1420,6 +1423,7 @@ _brew_readall() {
_arguments \ _arguments \
'--aliases[Verify any alias symlinks in each tap]' \ '--aliases[Verify any alias symlinks in each tap]' \
'--debug[Display any debugging information]' \ '--debug[Display any debugging information]' \
'--eval-all[Evaluate all available formulae and casks, whether installed or not. Implied if HOMEBREW_EVAL_ALL is set]' \
'--help[Show this message]' \ '--help[Show this message]' \
'--quiet[Make some output more quiet]' \ '--quiet[Make some output more quiet]' \
'--syntax[Syntax-check all of Homebrew'\''s Ruby files (if no `tap` is passed)]' \ '--syntax[Syntax-check all of Homebrew'\''s Ruby files (if no `tap` is passed)]' \
@ -1542,6 +1546,7 @@ _brew_search() {
'(--repology --macports --fink --opensuse --fedora --archlinux --ubuntu)--debian[Search for text in the given database]' \ '(--repology --macports --fink --opensuse --fedora --archlinux --ubuntu)--debian[Search for text in the given database]' \
'--debug[Display any debugging information]' \ '--debug[Display any debugging information]' \
'(--pull-request)--desc[Search for formulae with a description matching text and casks with a name or description matching text]' \ '(--pull-request)--desc[Search for formulae with a description matching text and casks with a name or description matching text]' \
'--eval-all[Evaluate all available formulae and casks, whether installed or not, to search their descriptions. Implied if HOMEBREW_EVAL_ALL is set]' \
'(--repology --macports --fink --opensuse --archlinux --debian --ubuntu)--fedora[Search for text in the given database]' \ '(--repology --macports --fink --opensuse --archlinux --debian --ubuntu)--fedora[Search for text in the given database]' \
'(--repology --macports --opensuse --fedora --archlinux --debian --ubuntu)--fink[Search for text in the given database]' \ '(--repology --macports --opensuse --fedora --archlinux --debian --ubuntu)--fink[Search for text in the given database]' \
'--formula[Search online and locally for formulae]' \ '--formula[Search online and locally for formulae]' \
@ -1598,6 +1603,7 @@ _brew_tap() {
_arguments \ _arguments \
'--custom-remote[Install or change a tap with a custom remote. Useful for mirrors]' \ '--custom-remote[Install or change a tap with a custom remote. Useful for mirrors]' \
'--debug[Display any debugging information]' \ '--debug[Display any debugging information]' \
'--eval-all[Evaluate all the formulae, casks and aliases in the new tap to check validity. Implied if HOMEBREW_EVAL_ALL is set]' \
'--force-auto-update[Auto-update tap even if it is not hosted on GitHub. By default, only taps hosted on GitHub are auto-updated (for performance reasons)]' \ '--force-auto-update[Auto-update tap even if it is not hosted on GitHub. By default, only taps hosted on GitHub are auto-updated (for performance reasons)]' \
'--help[Show this message]' \ '--help[Show this message]' \
'--list-pinned[List all pinned taps]' \ '--list-pinned[List all pinned taps]' \
@ -1640,7 +1646,6 @@ _brew_tap_new() {
# brew tc # brew tc
_brew_tc() { _brew_tc() {
_arguments \ _arguments \
'--all[Regenerate all RBI files rather than just updated gems]' \
'--debug[Display any debugging information]' \ '--debug[Display any debugging information]' \
'(--file)--dir[Typecheck all files in a specific directory]' \ '(--file)--dir[Typecheck all files in a specific directory]' \
'(--dir)--file[Typecheck a single file]' \ '(--dir)--file[Typecheck a single file]' \
@ -1650,6 +1655,7 @@ _brew_tc() {
'--quiet[Silence all non-critical errors]' \ '--quiet[Silence all non-critical errors]' \
'--suggest-typed[Try upgrading `typed` sigils]' \ '--suggest-typed[Try upgrading `typed` sigils]' \
'--update[Update RBI files]' \ '--update[Update RBI files]' \
'--update-all[Update all RBI files rather than just updated gems]' \
'--verbose[Make some output more verbose]' '--verbose[Make some output more verbose]'
} }
@ -1688,7 +1694,6 @@ _brew_tests() {
# brew typecheck # brew typecheck
_brew_typecheck() { _brew_typecheck() {
_arguments \ _arguments \
'--all[Regenerate all RBI files rather than just updated gems]' \
'--debug[Display any debugging information]' \ '--debug[Display any debugging information]' \
'(--file)--dir[Typecheck all files in a specific directory]' \ '(--file)--dir[Typecheck all files in a specific directory]' \
'(--dir)--file[Typecheck a single file]' \ '(--dir)--file[Typecheck a single file]' \
@ -1698,18 +1703,20 @@ _brew_typecheck() {
'--quiet[Silence all non-critical errors]' \ '--quiet[Silence all non-critical errors]' \
'--suggest-typed[Try upgrading `typed` sigils]' \ '--suggest-typed[Try upgrading `typed` sigils]' \
'--update[Update RBI files]' \ '--update[Update RBI files]' \
'--update-all[Update all RBI files rather than just updated gems]' \
'--verbose[Make some output more verbose]' '--verbose[Make some output more verbose]'
} }
# brew unbottled # brew unbottled
_brew_unbottled() { _brew_unbottled() {
_arguments \ _arguments \
'(--dependents --installed)--all[Print the number of unbottled and total formulae]' \
'--debug[Display any debugging information]' \ '--debug[Display any debugging information]' \
'(--all)--dependents[Skip getting analytics data and sort by number of dependents instead]' \ '(--total)--dependents[Skip getting analytics data and sort by number of dependents instead]' \
'--eval-all[Evaluate all available formulae and casks, whether installed or not, to check them. Implied if HOMEBREW_EVAL_ALL is set]' \
'--help[Show this message]' \ '--help[Show this message]' \
'--quiet[Make some output more quiet]' \ '--quiet[Make some output more quiet]' \
'--tag[Use the specified bottle tag (e.g. `big_sur`) instead of the current OS]' \ '--tag[Use the specified bottle tag (e.g. `big_sur`) instead of the current OS]' \
'(--dependents)--total[Print the number of unbottled and total formulae]' \
'--verbose[Make some output more verbose]' \ '--verbose[Make some output more verbose]' \
- formula \ - formula \
'*::formula:__brew_formulae' '*::formula:__brew_formulae'
@ -1948,6 +1955,7 @@ _brew_uses() {
_arguments \ _arguments \
'(--formula)--cask[Include only casks]' \ '(--formula)--cask[Include only casks]' \
'--debug[Display any debugging information]' \ '--debug[Display any debugging information]' \
'--eval-all[Evaluate all available formulae and casks, whether installed or not, to show their dependents]' \
'--help[Show this message]' \ '--help[Show this message]' \
'--include-build[Include all formulae that specify formula as `:build` type dependency]' \ '--include-build[Include all formulae that specify formula as `:build` type dependency]' \
'--include-optional[Include all formulae that specify formula as `:optional` type dependency]' \ '--include-optional[Include all formulae that specify formula as `:optional` type dependency]' \

View File

@ -168,8 +168,8 @@ show the intersection of dependencies for each formula.
Mark any build, test, optional, or recommended dependencies as such in the output. Mark any build, test, optional, or recommended dependencies as such in the output.
* `--installed`: * `--installed`:
List dependencies for formulae that are currently installed. If *`formula`* is specified, list only its dependencies that are currently installed. List dependencies for formulae that are currently installed. If *`formula`* is specified, list only its dependencies that are currently installed.
* `--all`: * `--eval-all`:
List dependencies for all available formulae. Evaluate all available formulae and casks, whether installed or not, to list their dependencies.
* `--for-each`: * `--for-each`:
Switch into the mode used by the `--all` option, but only list dependencies for each provided *`formula`*, one formula per line. This is used for debugging the `--installed`/`--all` display mode. Switch into the mode used by the `--all` option, but only list dependencies for each provided *`formula`*, one formula per line. This is used for debugging the `--installed`/`--all` display mode.
* `--formula`: * `--formula`:
@ -180,8 +180,7 @@ show the intersection of dependencies for each formula.
### `desc` [*`options`*] *`formula`*|*`cask`*|*`text`*|`/`*`regex`*`/` [...] ### `desc` [*`options`*] *`formula`*|*`cask`*|*`text`*|`/`*`regex`*`/` [...]
Display *`formula`*'s name and one-line description. Display *`formula`*'s name and one-line description.
Formula descriptions are cached; the cache is created on the The cache is created on the first search, making that search slower than subsequent ones.
first search, making that search slower than subsequent ones.
* `-s`, `--search`: * `-s`, `--search`:
Search both names and descriptions for *`text`*. If *`text`* is flanked by slashes, it is interpreted as a regular expression. Search both names and descriptions for *`text`*. If *`text`* is flanked by slashes, it is interpreted as a regular expression.
@ -189,6 +188,8 @@ first search, making that search slower than subsequent ones.
Search just names for *`text`*. If *`text`* is flanked by slashes, it is interpreted as a regular expression. Search just names for *`text`*. If *`text`* is flanked by slashes, it is interpreted as a regular expression.
* `-d`, `--description`: * `-d`, `--description`:
Search just descriptions for *`text`*. If *`text`* is flanked by slashes, it is interpreted as a regular expression. Search just descriptions for *`text`*. If *`text`* is flanked by slashes, it is interpreted as a regular expression.
* `--eval-all`:
Evaluate all available formulae and casks, whether installed or not, to search their descriptions. Implied if HOMEBREW_EVAL_ALL is set.
* `--formula`: * `--formula`:
Treat all named arguments as formulae. Treat all named arguments as formulae.
* `--cask`: * `--cask`:
@ -293,8 +294,8 @@ If a *`formula`* or *`cask`* is provided, show summary of information about it.
Print a JSON representation. Currently the default value for *`version`* is `v1` for *`formula`*. For *`formula`* and *`cask`* use `v2`. See the docs for examples of using the JSON output: <https://docs.brew.sh/Querying-Brew> Print a JSON representation. Currently the default value for *`version`* is `v1` for *`formula`*. For *`formula`* and *`cask`* use `v2`. See the docs for examples of using the JSON output: <https://docs.brew.sh/Querying-Brew>
* `--installed`: * `--installed`:
Print JSON of formulae that are currently installed. Print JSON of formulae that are currently installed.
* `--all`: * `--eval-all`:
Print JSON of all available formulae. Evaluate all available formulae and casks, whether installed or not, to print their JSON. Implied if HOMEBREW_EVAL_ALL is set.
* `--variations`: * `--variations`:
Include the variations hash in each formula's JSON output. Include the variations hash in each formula's JSON output.
* `-v`, `--verbose`: * `-v`, `--verbose`:
@ -470,8 +471,8 @@ Show install options specific to *`formula`*.
Show all options on a single line separated by spaces. Show all options on a single line separated by spaces.
* `--installed`: * `--installed`:
Show options for formulae that are currently installed. Show options for formulae that are currently installed.
* `--all`: * `--eval-all`:
Show options for all available formulae. Evaluate all available formulae and casks, whether installed or not, to show their options.
* `--command`: * `--command`:
Show options for the specified *`command`*. Show options for the specified *`command`*.
@ -508,7 +509,7 @@ issuing the `brew upgrade` *`formula`* command. See also `unpin`.
Rerun the post-install steps for *`formula`*. Rerun the post-install steps for *`formula`*.
### `readall` [*`--aliases`*] [*`--syntax`*] [*`tap`* ...] ### `readall` [*`options`*] [*`tap`* ...]
Import all items from the specified *`tap`*, or from all installed taps if none is provided. Import all items from the specified *`tap`*, or from all installed taps if none is provided.
This can be useful for debugging issues across all items when making This can be useful for debugging issues across all items when making
@ -519,6 +520,8 @@ all items or checking if any current formulae/casks have Ruby issues.
Verify any alias symlinks in each tap. Verify any alias symlinks in each tap.
* `--syntax`: * `--syntax`:
Syntax-check all of Homebrew's Ruby files (if no `*`tap`*` is passed). Syntax-check all of Homebrew's Ruby files (if no `*`tap`*` is passed).
* `--eval-all`:
Evaluate all available formulae and casks, whether installed or not. Implied if HOMEBREW_EVAL_ALL is set.
### `reinstall` [*`options`*] *`formula`*|*`cask`* [...] ### `reinstall` [*`options`*] *`formula`*|*`cask`* [...]
@ -578,6 +581,8 @@ The search for *`text`* is extended online to `homebrew/core` and `homebrew/cask
Search online and locally for casks. Search online and locally for casks.
* `--desc`: * `--desc`:
Search for formulae with a description matching *`text`* and casks with a name or description matching *`text`*. Search for formulae with a description matching *`text`* and casks with a name or description matching *`text`*.
* `--eval-all`:
Evaluate all available formulae and casks, whether installed or not, to search their descriptions. Implied if HOMEBREW_EVAL_ALL is set.
* `--pull-request`: * `--pull-request`:
Search for GitHub pull requests containing *`text`*. Search for GitHub pull requests containing *`text`*.
* `--open`: * `--open`:
@ -634,6 +639,8 @@ using protocols other than HTTPS, e.g. SSH, git, HTTP, FTP(S), rsync.
Migrate tapped formulae from symlink-based to directory-based structure. Migrate tapped formulae from symlink-based to directory-based structure.
* `--list-pinned`: * `--list-pinned`:
List all pinned taps. List all pinned taps.
* `--eval-all`:
Evaluate all the formulae, casks and aliases in the new tap to check validity. Implied if HOMEBREW_EVAL_ALL is set.
### `tap-info` [*`--installed`*] [*`--json`*] [*`tap`* ...] ### `tap-info` [*`--installed`*] [*`--json`*] [*`tap`* ...]
@ -765,6 +772,8 @@ specify *`formula`* as a required or recommended dependency for their stable bui
Resolve more than one level of dependencies. Resolve more than one level of dependencies.
* `--installed`: * `--installed`:
Only list formulae and casks that are currently installed. Only list formulae and casks that are currently installed.
* `--eval-all`:
Evaluate all available formulae and casks, whether installed or not, to show their dependents.
* `--include-build`: * `--include-build`:
Include all formulae that specify *`formula`* as `:build` type dependency. Include all formulae that specify *`formula`* as `:build` type dependency.
* `--include-test`: * `--include-test`:
@ -866,6 +875,8 @@ non-zero status if any errors are found.
Run additional, slower style checks that require a network connection. Run additional, slower style checks that require a network connection.
* `--installed`: * `--installed`:
Only check formulae and casks that are currently installed. Only check formulae and casks that are currently installed.
* `--eval-all`:
Evaluate all available formulae and casks, whether installed or not, to audit them. Implied if HOMEBREW_EVAL_ALL is set.
* `--new`: * `--new`:
Run various additional style checks to determine if a new formula or cask is eligible for Homebrew. This should be used when creating new formula and implies `--strict` and `--online`. Run various additional style checks to determine if a new formula or cask is eligible for Homebrew. This should be used when creating new formula and implies `--strict` and `--online`.
* `--[no-]appcast`: * `--[no-]appcast`:
@ -994,8 +1005,8 @@ supplied by the user.
Create a pull request to update *`formula`* with a new URL or a new tag. Create a pull request to update *`formula`* with a new URL or a new tag.
If a *`URL`* is specified, the *`SHA-256`* checksum of the new download should also If a *`URL`* is specified, the *`SHA-256`* checksum of the new download should also
be specified. A best effort to determine the *`SHA-256`* and *`formula`* name will be specified. A best effort to determine the *`SHA-256`* will be made if not supplied
be made if either or both values are not supplied by the user. by the user.
If a *`tag`* is specified, the Git commit *`revision`* corresponding to that tag If a *`tag`* is specified, the Git commit *`revision`* corresponding to that tag
should also be specified. A best effort to determine the *`revision`* will be made should also be specified. A best effort to determine the *`revision`* will be made
@ -1241,13 +1252,13 @@ casks to check is taken from `HOMEBREW_LIVECHECK_WATCHLIST` or
`~/.brew_livecheck_watchlist`. `~/.brew_livecheck_watchlist`.
* `--full-name`: * `--full-name`:
Print formulae/casks with fully-qualified names. Print formulae and casks with fully-qualified names.
* `--tap`: * `--tap`:
Check formulae/casks within the given tap, specified as *`user`*`/`*`repo`*. Check formulae and casks within the given tap, specified as *`user`*`/`*`repo`*.
* `--all`: * `--eval-all`:
Check all available formulae/casks. Evaluate all available formulae and casks, whether installed or not, to check them.
* `--installed`: * `--installed`:
Check formulae/casks that are currently installed. Check formulae and casks that are currently installed.
* `--newer-only`: * `--newer-only`:
Show the latest version only if it's newer than the formula/cask. Show the latest version only if it's newer than the formula/cask.
* `--json`: * `--json`:
@ -1492,8 +1503,8 @@ Check for typechecking errors using Sorbet.
Silence all non-critical errors. Silence all non-critical errors.
* `--update`: * `--update`:
Update RBI files. Update RBI files.
* `--all`: * `--update-all`:
Regenerate all RBI files rather than just updated gems. Update all RBI files rather than just updated gems.
* `--suggest-typed`: * `--suggest-typed`:
Try upgrading `typed` sigils. Try upgrading `typed` sigils.
* `--dir`: * `--dir`:
@ -1511,8 +1522,10 @@ Show the unbottled dependents of formulae.
Use the specified bottle tag (e.g. `big_sur`) instead of the current OS. Use the specified bottle tag (e.g. `big_sur`) instead of the current OS.
* `--dependents`: * `--dependents`:
Skip getting analytics data and sort by number of dependents instead. Skip getting analytics data and sort by number of dependents instead.
* `--all`: * `--total`:
Print the number of unbottled and total formulae. Print the number of unbottled and total formulae.
* `--eval-all`:
Evaluate all available formulae and casks, whether installed or not, to check them. Implied if HOMEBREW_EVAL_ALL is set.
### `unpack` [*`options`*] *`formula`* [...] ### `unpack` [*`options`*] *`formula`* [...]
@ -2055,6 +2068,9 @@ example, run `export HOMEBREW_NO_INSECURE_REDIRECT=1` rather than just
*Default:* `$EDITOR` or `$VISUAL`. *Default:* `$EDITOR` or `$VISUAL`.
- `HOMEBREW_EVAL_ALL`
<br>If set, `brew` commands evaluate all formulae and casks, executing their arbitrary code, by default without requiring --eval-all. Required to cache formula and cask descriptions.
- `HOMEBREW_FAIL_LOG_LINES` - `HOMEBREW_FAIL_LOG_LINES`
<br>Output this many lines of output on formula `system` failures. <br>Output this many lines of output on formula `system` failures.

View File

@ -210,8 +210,8 @@ Mark any build, test, optional, or recommended dependencies as such in the outpu
List dependencies for formulae that are currently installed\. If \fIformula\fR is specified, list only its dependencies that are currently installed\. List dependencies for formulae that are currently installed\. If \fIformula\fR is specified, list only its dependencies that are currently installed\.
. .
.TP .TP
\fB\-\-all\fR \fB\-\-eval\-all\fR
List dependencies for all available formulae\. Evaluate all available formulae and casks, whether installed or not, to list their dependencies\.
. .
.TP .TP
\fB\-\-for\-each\fR \fB\-\-for\-each\fR
@ -226,7 +226,7 @@ Treat all named arguments as formulae\.
Treat all named arguments as casks\. Treat all named arguments as casks\.
. .
.SS "\fBdesc\fR [\fIoptions\fR] \fIformula\fR|\fIcask\fR|\fItext\fR|\fB/\fR\fIregex\fR\fB/\fR [\.\.\.]" .SS "\fBdesc\fR [\fIoptions\fR] \fIformula\fR|\fIcask\fR|\fItext\fR|\fB/\fR\fIregex\fR\fB/\fR [\.\.\.]"
Display \fIformula\fR\'s name and one\-line description\. Formula descriptions are cached; the cache is created on the first search, making that search slower than subsequent ones\. Display \fIformula\fR\'s name and one\-line description\. The cache is created on the first search, making that search slower than subsequent ones\.
. .
.TP .TP
\fB\-s\fR, \fB\-\-search\fR \fB\-s\fR, \fB\-\-search\fR
@ -241,6 +241,10 @@ Search just names for \fItext\fR\. If \fItext\fR is flanked by slashes, it is in
Search just descriptions for \fItext\fR\. If \fItext\fR is flanked by slashes, it is interpreted as a regular expression\. Search just descriptions for \fItext\fR\. If \fItext\fR is flanked by slashes, it is interpreted as a regular expression\.
. .
.TP .TP
\fB\-\-eval\-all\fR
Evaluate all available formulae and casks, whether installed or not, to search their descriptions\. Implied if HOMEBREW_EVAL_ALL is set\.
.
.TP
\fB\-\-formula\fR \fB\-\-formula\fR
Treat all named arguments as formulae\. Treat all named arguments as formulae\.
. .
@ -381,8 +385,8 @@ Print a JSON representation\. Currently the default value for \fIversion\fR is \
Print JSON of formulae that are currently installed\. Print JSON of formulae that are currently installed\.
. .
.TP .TP
\fB\-\-all\fR \fB\-\-eval\-all\fR
Print JSON of all available formulae\. Evaluate all available formulae and casks, whether installed or not, to print their JSON\. Implied if HOMEBREW_EVAL_ALL is set\.
. .
.TP .TP
\fB\-\-variations\fR \fB\-\-variations\fR
@ -653,8 +657,8 @@ Show all options on a single line separated by spaces\.
Show options for formulae that are currently installed\. Show options for formulae that are currently installed\.
. .
.TP .TP
\fB\-\-all\fR \fB\-\-eval\-all\fR
Show options for all available formulae\. Evaluate all available formulae and casks, whether installed or not, to show their options\.
. .
.TP .TP
\fB\-\-command\fR \fB\-\-command\fR
@ -705,7 +709,7 @@ Pin the specified \fIformula\fR, preventing them from being upgraded when issuin
.SS "\fBpostinstall\fR \fIinstalled_formula\fR [\.\.\.]" .SS "\fBpostinstall\fR \fIinstalled_formula\fR [\.\.\.]"
Rerun the post\-install steps for \fIformula\fR\. Rerun the post\-install steps for \fIformula\fR\.
. .
.SS "\fBreadall\fR [\fI\-\-aliases\fR] [\fI\-\-syntax\fR] [\fItap\fR \.\.\.]" .SS "\fBreadall\fR [\fIoptions\fR] [\fItap\fR \.\.\.]"
Import all items from the specified \fItap\fR, or from all installed taps if none is provided\. This can be useful for debugging issues across all items when making significant changes to \fBformula\.rb\fR, testing the performance of loading all items or checking if any current formulae/casks have Ruby issues\. Import all items from the specified \fItap\fR, or from all installed taps if none is provided\. This can be useful for debugging issues across all items when making significant changes to \fBformula\.rb\fR, testing the performance of loading all items or checking if any current formulae/casks have Ruby issues\.
. .
.TP .TP
@ -716,6 +720,10 @@ Verify any alias symlinks in each tap\.
\fB\-\-syntax\fR \fB\-\-syntax\fR
Syntax\-check all of Homebrew\'s Ruby files (if no \fB<tap>\fR is passed)\. Syntax\-check all of Homebrew\'s Ruby files (if no \fB<tap>\fR is passed)\.
. .
.TP
\fB\-\-eval\-all\fR
Evaluate all available formulae and casks, whether installed or not\. Implied if HOMEBREW_EVAL_ALL is set\.
.
.SS "\fBreinstall\fR [\fIoptions\fR] \fIformula\fR|\fIcask\fR [\.\.\.]" .SS "\fBreinstall\fR [\fIoptions\fR] \fIformula\fR|\fIcask\fR [\.\.\.]"
Uninstall and then reinstall a \fIformula\fR or \fIcask\fR using the same options it was originally installed with, plus any appended options specific to a \fIformula\fR\. Uninstall and then reinstall a \fIformula\fR or \fIcask\fR using the same options it was originally installed with, plus any appended options specific to a \fIformula\fR\.
. .
@ -809,6 +817,10 @@ Search online and locally for casks\.
Search for formulae with a description matching \fItext\fR and casks with a name or description matching \fItext\fR\. Search for formulae with a description matching \fItext\fR and casks with a name or description matching \fItext\fR\.
. .
.TP .TP
\fB\-\-eval\-all\fR
Evaluate all available formulae and casks, whether installed or not, to search their descriptions\. Implied if HOMEBREW_EVAL_ALL is set\.
.
.TP
\fB\-\-pull\-request\fR \fB\-\-pull\-request\fR
Search for GitHub pull requests containing \fItext\fR\. Search for GitHub pull requests containing \fItext\fR\.
. .
@ -886,6 +898,10 @@ Migrate tapped formulae from symlink\-based to directory\-based structure\.
\fB\-\-list\-pinned\fR \fB\-\-list\-pinned\fR
List all pinned taps\. List all pinned taps\.
. .
.TP
\fB\-\-eval\-all\fR
Evaluate all the formulae, casks and aliases in the new tap to check validity\. Implied if HOMEBREW_EVAL_ALL is set\.
.
.SS "\fBtap\-info\fR [\fI\-\-installed\fR] [\fI\-\-json\fR] [\fItap\fR \.\.\.]" .SS "\fBtap\-info\fR [\fI\-\-installed\fR] [\fI\-\-json\fR] [\fItap\fR \.\.\.]"
Show detailed information about one or more \fItap\fRs\. Show detailed information about one or more \fItap\fRs\.
. .
@ -1066,6 +1082,10 @@ Resolve more than one level of dependencies\.
Only list formulae and casks that are currently installed\. Only list formulae and casks that are currently installed\.
. .
.TP .TP
\fB\-\-eval\-all\fR
Evaluate all available formulae and casks, whether installed or not, to show their dependents\.
.
.TP
\fB\-\-include\-build\fR \fB\-\-include\-build\fR
Include all formulae that specify \fIformula\fR as \fB:build\fR type dependency\. Include all formulae that specify \fIformula\fR as \fB:build\fR type dependency\.
. .
@ -1201,6 +1221,10 @@ Run additional, slower style checks that require a network connection\.
Only check formulae and casks that are currently installed\. Only check formulae and casks that are currently installed\.
. .
.TP .TP
\fB\-\-eval\-all\fR
Evaluate all available formulae and casks, whether installed or not, to audit them\. Implied if HOMEBREW_EVAL_ALL is set\.
.
.TP
\fB\-\-new\fR \fB\-\-new\fR
Run various additional style checks to determine if a new formula or cask is eligible for Homebrew\. This should be used when creating new formula and implies \fB\-\-strict\fR and \fB\-\-online\fR\. Run various additional style checks to determine if a new formula or cask is eligible for Homebrew\. This should be used when creating new formula and implies \fB\-\-strict\fR and \fB\-\-online\fR\.
. .
@ -1412,7 +1436,7 @@ Ignore duplicate open PRs\.
Create a pull request to update \fIformula\fR with a new URL or a new tag\. Create a pull request to update \fIformula\fR with a new URL or a new tag\.
. .
.P .P
If a \fIURL\fR is specified, the \fISHA\-256\fR checksum of the new download should also be specified\. A best effort to determine the \fISHA\-256\fR and \fIformula\fR name will be made if either or both values are not supplied by the user\. If a \fIURL\fR is specified, the \fISHA\-256\fR checksum of the new download should also be specified\. A best effort to determine the \fISHA\-256\fR will be made if not supplied by the user\.
. .
.P .P
If a \fItag\fR is specified, the Git commit \fIrevision\fR corresponding to that tag should also be specified\. A best effort to determine the \fIrevision\fR will be made if the value is not supplied by the user\. If a \fItag\fR is specified, the Git commit \fIrevision\fR corresponding to that tag should also be specified\. A best effort to determine the \fIrevision\fR will be made if the value is not supplied by the user\.
@ -1760,19 +1784,19 @@ If no formula or cask argument is passed, the list of formulae and casks to chec
. .
.TP .TP
\fB\-\-full\-name\fR \fB\-\-full\-name\fR
Print formulae/casks with fully\-qualified names\. Print formulae and casks with fully\-qualified names\.
. .
.TP .TP
\fB\-\-tap\fR \fB\-\-tap\fR
Check formulae/casks within the given tap, specified as \fIuser\fR\fB/\fR\fIrepo\fR\. Check formulae and casks within the given tap, specified as \fIuser\fR\fB/\fR\fIrepo\fR\.
. .
.TP .TP
\fB\-\-all\fR \fB\-\-eval\-all\fR
Check all available formulae/casks\. Evaluate all available formulae and casks, whether installed or not, to check them\.
. .
.TP .TP
\fB\-\-installed\fR \fB\-\-installed\fR
Check formulae/casks that are currently installed\. Check formulae and casks that are currently installed\.
. .
.TP .TP
\fB\-\-newer\-only\fR \fB\-\-newer\-only\fR
@ -2133,8 +2157,8 @@ Silence all non\-critical errors\.
Update RBI files\. Update RBI files\.
. .
.TP .TP
\fB\-\-all\fR \fB\-\-update\-all\fR
Regenerate all RBI files rather than just updated gems\. Update all RBI files rather than just updated gems\.
. .
.TP .TP
\fB\-\-suggest\-typed\fR \fB\-\-suggest\-typed\fR
@ -2164,9 +2188,13 @@ Use the specified bottle tag (e\.g\. \fBbig_sur\fR) instead of the current OS\.
Skip getting analytics data and sort by number of dependents instead\. Skip getting analytics data and sort by number of dependents instead\.
. .
.TP .TP
\fB\-\-all\fR \fB\-\-total\fR
Print the number of unbottled and total formulae\. Print the number of unbottled and total formulae\.
. .
.TP
\fB\-\-eval\-all\fR
Evaluate all available formulae and casks, whether installed or not, to check them\. Implied if HOMEBREW_EVAL_ALL is set\.
.
.SS "\fBunpack\fR [\fIoptions\fR] \fIformula\fR [\.\.\.]" .SS "\fBunpack\fR [\fIoptions\fR] \fIformula\fR [\.\.\.]"
Unpack the source files for \fIformula\fR into subdirectories of the current working directory\. Unpack the source files for \fIformula\fR into subdirectories of the current working directory\.
. .
@ -2959,6 +2987,12 @@ Use this editor when editing a single formula, or several formulae in the same d
\fIDefault:\fR \fB$EDITOR\fR or \fB$VISUAL\fR\. \fIDefault:\fR \fB$EDITOR\fR or \fB$VISUAL\fR\.
. .
.TP .TP
\fBHOMEBREW_EVAL_ALL\fR
.
.br
If set, \fBbrew\fR commands evaluate all formulae and casks, executing their arbitrary code, by default without requiring \-\-eval\-all\. Required to cache formula and cask descriptions\.
.
.TP
\fBHOMEBREW_FAIL_LOG_LINES\fR \fBHOMEBREW_FAIL_LOG_LINES\fR
. .
.br .br