Merge pull request #9437 from Rylan12/uses-flags

uses: add --formula and --casks flags
This commit is contained in:
Rylan Polster 2020-12-09 08:58:42 -05:00 committed by GitHub
commit fbcf943d8c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 44 additions and 18 deletions

View File

@ -23,15 +23,15 @@ module Homebrew
usage_banner <<~EOS
`uses` [<options>] <formula>
Show formulae that specify <formula> as a dependency (i.e. show dependents
Show formulae and casks that specify <formula> as a dependency (i.e. show dependents
of <formula>). When given multiple formula arguments, show the intersection
of formulae that use <formula>. By default, `uses` shows all formulae that
of formulae that use <formula>. By default, `uses` shows all formulae and casks that
specify <formula> as a required or recommended dependency for their stable builds.
EOS
switch "--recursive",
description: "Resolve more than one level of dependencies."
switch "--installed",
description: "Only list formulae that are currently installed."
description: "Only list formulae and casks that are currently installed."
switch "--include-build",
description: "Include all formulae that specify <formula> as `:build` type dependency."
switch "--include-test",
@ -40,7 +40,12 @@ module Homebrew
description: "Include all formulae that specify <formula> as `:optional` type dependency."
switch "--skip-recommended",
description: "Skip all formulae that specify <formula> as `:recommended` type dependency."
switch "--formula", "--formulae",
description: "Include only formulae."
switch "--cask", "--casks",
description: "Include only casks."
conflicts "--formula", "--cask"
min_named :formula
end
end
@ -77,24 +82,33 @@ module Homebrew
def intersection_of_dependents(use_runtime_dependents, used_formulae, args:)
recursive = args.recursive?
show_formulae_and_casks = !args.formula? && !args.cask?
includes, ignores = args_includes_ignores(args)
deps = []
if use_runtime_dependents
used_formulae.map(&:runtime_installed_formula_dependents)
.reduce(&:&)
.select(&:any_version_installed?) +
select_used_dependents(
if show_formulae_and_casks || args.formula?
deps += used_formulae.map(&:runtime_installed_formula_dependents)
.reduce(&:&)
.select(&:any_version_installed?)
end
if show_formulae_and_casks || args.cask?
deps += select_used_dependents(
dependents(Cask::Caskroom.casks(config: Cask::Config.from_args(args))),
used_formulae, recursive, includes, ignores
)
else
deps = if args.installed?
dependents(Formula.installed + Cask::Caskroom.casks(config: Cask::Config.from_args(args)))
else
dependents(Formula.to_a + Cask::Cask.to_a)
end
select_used_dependents(deps, used_formulae, recursive, includes, ignores)
deps
else
if show_formulae_and_casks || args.formula?
deps += args.installed? ? Formula.installed : Formula.to_a
end
if show_formulae_and_casks || args.cask?
deps += args.installed? ? Cask::Caskroom.casks(config: Cask::Config.from_args(args)) : Cask::Cask.to_a
end
select_used_dependents(dependents(deps), used_formulae, recursive, includes, ignores)
end
end

View File

@ -640,15 +640,15 @@ upgraded formulae or, every 30 days, for all formulae.
### `uses` [*`options`*] *`formula`*
Show formulae that specify *`formula`* as a dependency (i.e. show dependents
Show formulae and casks that specify *`formula`* as a dependency (i.e. show dependents
of *`formula`*). When given multiple formula arguments, show the intersection
of formulae that use *`formula`*. By default, `uses` shows all formulae that
of formulae that use *`formula`*. By default, `uses` shows all formulae and casks that
specify *`formula`* as a required or recommended dependency for their stable builds.
* `--recursive`:
Resolve more than one level of dependencies.
* `--installed`:
Only list formulae that are currently installed.
Only list formulae and casks that are currently installed.
* `--include-build`:
Include all formulae that specify *`formula`* as `:build` type dependency.
* `--include-test`:
@ -657,6 +657,10 @@ specify *`formula`* as a required or recommended dependency for their stable bui
Include all formulae that specify *`formula`* as `:optional` type dependency.
* `--skip-recommended`:
Skip all formulae that specify *`formula`* as `:recommended` type dependency.
* `--formula`:
Include only formulae.
* `--cask`:
Include only casks.
### `--cache` [*`options`*] [*`formula`*|*`cask`*]

View File

@ -874,7 +874,7 @@ Skip installing cask dependencies\.
Also include casks with \fBauto_updates true\fR or \fBversion :latest\fR\.
.
.SS "\fBuses\fR [\fIoptions\fR] \fIformula\fR"
Show formulae that specify \fIformula\fR as a dependency (i\.e\. show dependents of \fIformula\fR)\. When given multiple formula arguments, show the intersection of formulae that use \fIformula\fR\. By default, \fBuses\fR shows all formulae that specify \fIformula\fR as a required or recommended dependency for their stable builds\.
Show formulae and casks that specify \fIformula\fR as a dependency (i\.e\. show dependents of \fIformula\fR)\. When given multiple formula arguments, show the intersection of formulae that use \fIformula\fR\. By default, \fBuses\fR shows all formulae and casks that specify \fIformula\fR as a required or recommended dependency for their stable builds\.
.
.TP
\fB\-\-recursive\fR
@ -882,7 +882,7 @@ Resolve more than one level of dependencies\.
.
.TP
\fB\-\-installed\fR
Only list formulae that are currently installed\.
Only list formulae and casks that are currently installed\.
.
.TP
\fB\-\-include\-build\fR
@ -900,6 +900,14 @@ Include all formulae that specify \fIformula\fR as \fB:optional\fR type dependen
\fB\-\-skip\-recommended\fR
Skip all formulae that specify \fIformula\fR as \fB:recommended\fR type dependency\.
.
.TP
\fB\-\-formula\fR
Include only formulae\.
.
.TP
\fB\-\-cask\fR
Include only casks\.
.
.SS "\fB\-\-cache\fR [\fIoptions\fR] [\fIformula\fR|\fIcask\fR]"
Display Homebrew\'s download cache\. See also \fBHOMEBREW_CACHE\fR\.
.