Skip to content

Commit

Permalink
cmd/list: support using --full-name with --installed-on-request e…
Browse files Browse the repository at this point in the history
…t al.

Fixes #18908 (comment).
  • Loading branch information
ZhongRuoyu committed Dec 11, 2024
1 parent 29e9087 commit a50e15e
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 17 deletions.
16 changes: 9 additions & 7 deletions Library/Homebrew/cmd/list.rb
Original file line number Diff line number Diff line change
Expand Up @@ -75,10 +75,7 @@ class List < AbstractCommand
conflicts "--versions", flag
conflicts "--pinned", flag
end
["--versions", "--pinned",
"--installed-on-request", "--installed-as-dependency",
"--poured-from-bottle", "--built-from-source",
"-l", "-r", "-t"].each do |flag|
["--versions", "--pinned", "-l", "-r", "-t"].each do |flag|
conflicts "--full-name", flag
end

Expand All @@ -87,7 +84,9 @@ class List < AbstractCommand

sig { override.void }
def run
if args.full_name?
if args.full_name? &&
!(args.installed_on_request? || args.installed_as_dependency? ||

Check warning on line 88 in Library/Homebrew/cmd/list.rb

View check run for this annotation

Codecov / codecov/patch

Library/Homebrew/cmd/list.rb#L88

Added line #L88 was not covered by tests
args.poured_from_bottle? || args.built_from_source?)
unless args.cask?
formula_names = args.no_named? ? Formula.installed : args.named.to_resolved_formulae
full_formula_names = formula_names.map(&:full_name).sort(&tap_and_name_comparison)
Expand Down Expand Up @@ -125,6 +124,8 @@ def run

formulae = if args.t?
Formula.installed.sort_by { |formula| test("M", formula.rack) }.reverse!
elsif args.full_name?
Formula.installed.sort { |a, b| tap_and_name_comparison.call(a.full_name, b.full_name) }
else
Formula.installed.sort
end
Expand All @@ -139,10 +140,11 @@ def run
statuses << "built from source" if args.built_from_source? && !tab.poured_from_bottle
next if statuses.empty?

name = args.full_name? ? formula.full_name : formula.name
if flags.count > 1
puts "#{formula.name}: #{statuses.join(", ")}"
puts "#{name}: #{statuses.join(", ")}"
else
puts formula.name
puts name
end
end
elsif args.no_named?
Expand Down
20 changes: 10 additions & 10 deletions completions/zsh/_brew
Original file line number Diff line number Diff line change
Expand Up @@ -1304,15 +1304,15 @@ _brew_linkage() {
# brew list
_brew_list() {
_arguments \
'(--cask --versions --pinned -l --full-name)--built-from-source[List the formulae compiled from source]' \
'(--cask --versions --pinned -l)--built-from-source[List the formulae compiled from source]' \
'--debug[Display any debugging information]' \
'(--versions --pinned --installed-on-request --installed-as-dependency --poured-from-bottle --built-from-source -l -r -t)--full-name[Print formulae with fully-qualified names. Unless `--full-name`, `--versions` or `--pinned` are passed, other options (i.e. `-1`, `-l`, `-r` and `-t`) are passed to `ls`(1) which produces the actual output]' \
'(--versions --pinned -l -r -t)--full-name[Print formulae with fully-qualified names. Unless `--full-name`, `--versions` or `--pinned` are passed, other options (i.e. `-1`, `-l`, `-r` and `-t`) are passed to `ls`(1) which produces the actual output]' \
'--help[Show this message]' \
'(--cask --versions --pinned -l --full-name)--installed-as-dependency[List the formulae installed as dependencies]' \
'(--cask --versions --pinned -l --full-name)--installed-on-request[List the formulae installed on request]' \
'(--cask --versions --pinned -l)--installed-as-dependency[List the formulae installed as dependencies]' \
'(--cask --versions --pinned -l)--installed-on-request[List the formulae installed on request]' \
'(--cask --pinned)--multiple[Only show formulae with multiple versions installed]' \
'(--cask --multiple --installed-on-request --installed-as-dependency --poured-from-bottle --built-from-source -1 -l -r -t --full-name)--pinned[List only pinned formulae, or only the specified (pinned) formulae if formula are provided. See also `pin`, `unpin`]' \
'(--cask --versions --pinned -l --full-name)--poured-from-bottle[List the formulae installed from a bottle]' \
'(--cask --versions --pinned -l)--poured-from-bottle[List the formulae installed from a bottle]' \
'--quiet[Make some output more quiet]' \
'--verbose[Make some output more verbose]' \
'(--installed-on-request --installed-as-dependency --poured-from-bottle --built-from-source -1 -l -r -t --full-name)--versions[Show the version number for installed formulae, or only the specified formulae if formula are provided]' \
Expand Down Expand Up @@ -1389,15 +1389,15 @@ _brew_log() {
# brew ls
_brew_ls() {
_arguments \
'(--cask --versions --pinned -l --full-name)--built-from-source[List the formulae compiled from source]' \
'(--cask --versions --pinned -l)--built-from-source[List the formulae compiled from source]' \
'--debug[Display any debugging information]' \
'(--versions --pinned --installed-on-request --installed-as-dependency --poured-from-bottle --built-from-source -l -r -t)--full-name[Print formulae with fully-qualified names. Unless `--full-name`, `--versions` or `--pinned` are passed, other options (i.e. `-1`, `-l`, `-r` and `-t`) are passed to `ls`(1) which produces the actual output]' \
'(--versions --pinned -l -r -t)--full-name[Print formulae with fully-qualified names. Unless `--full-name`, `--versions` or `--pinned` are passed, other options (i.e. `-1`, `-l`, `-r` and `-t`) are passed to `ls`(1) which produces the actual output]' \
'--help[Show this message]' \
'(--cask --versions --pinned -l --full-name)--installed-as-dependency[List the formulae installed as dependencies]' \
'(--cask --versions --pinned -l --full-name)--installed-on-request[List the formulae installed on request]' \
'(--cask --versions --pinned -l)--installed-as-dependency[List the formulae installed as dependencies]' \
'(--cask --versions --pinned -l)--installed-on-request[List the formulae installed on request]' \
'(--cask --pinned)--multiple[Only show formulae with multiple versions installed]' \
'(--cask --multiple --installed-on-request --installed-as-dependency --poured-from-bottle --built-from-source -1 -l -r -t --full-name)--pinned[List only pinned formulae, or only the specified (pinned) formulae if formula are provided. See also `pin`, `unpin`]' \
'(--cask --versions --pinned -l --full-name)--poured-from-bottle[List the formulae installed from a bottle]' \
'(--cask --versions --pinned -l)--poured-from-bottle[List the formulae installed from a bottle]' \
'--quiet[Make some output more quiet]' \
'--verbose[Make some output more verbose]' \
'(--installed-on-request --installed-as-dependency --poured-from-bottle --built-from-source -1 -l -r -t --full-name)--versions[Show the version number for installed formulae, or only the specified formulae if formula are provided]' \
Expand Down

0 comments on commit a50e15e

Please sign in to comment.