Merge pull request #18133 from FnControlOption/ls
This commit is contained in:
commit
9ee471d42c
@ -41,6 +41,10 @@ module Homebrew
|
||||
description: "List the formulae installed on request."
|
||||
switch "--installed-as-dependency",
|
||||
description: "List the formulae installed as dependencies."
|
||||
switch "--poured-from-bottle",
|
||||
description: "List the formulae installed from a bottle."
|
||||
switch "--built-from-source",
|
||||
description: "List the formulae compiled from source."
|
||||
|
||||
# passed through to ls
|
||||
switch "-1",
|
||||
@ -60,7 +64,8 @@ module Homebrew
|
||||
conflicts "--pinned", "--cask"
|
||||
conflicts "--multiple", "--cask"
|
||||
conflicts "--pinned", "--multiple"
|
||||
["--installed-on-request", "--installed-as-dependency"].each do |flag|
|
||||
["--installed-on-request", "--installed-as-dependency",
|
||||
"--poured-from-bottle", "--built-from-source"].each do |flag|
|
||||
conflicts "--cask", flag
|
||||
conflicts "--versions", flag
|
||||
conflicts "--pinned", flag
|
||||
@ -71,6 +76,7 @@ module Homebrew
|
||||
end
|
||||
["--versions", "--pinned",
|
||||
"---installed-on-request", "--installed-as-dependency",
|
||||
"--poured-from-bottle", "--built-from-source",
|
||||
"-l", "-r", "-t"].each do |flag|
|
||||
conflicts "--full-name", flag
|
||||
end
|
||||
@ -104,25 +110,31 @@ module Homebrew
|
||||
elsif args.versions?
|
||||
filtered_list unless args.cask?
|
||||
list_casks if args.cask? || (!args.formula? && !args.multiple? && args.no_named?)
|
||||
elsif args.installed_on_request? || args.installed_as_dependency?
|
||||
unless args.no_named?
|
||||
raise UsageError,
|
||||
"Cannot use `--installed-on-request` or " \
|
||||
"`--installed-as-dependency` with formula arguments."
|
||||
end
|
||||
elsif args.installed_on_request? ||
|
||||
args.installed_as_dependency? ||
|
||||
args.poured_from_bottle? ||
|
||||
args.built_from_source?
|
||||
flags = []
|
||||
flags << "`--installed-on-request`" if args.installed_on_request?
|
||||
flags << "`--installed-as-dependency`" if args.installed_as_dependency?
|
||||
flags << "`--poured-from-bottle`" if args.poured_from_bottle?
|
||||
flags << "`--built-from-source`" if args.built_from_source?
|
||||
|
||||
raise UsageError, "Cannot use #{flags.join(", ")} with formula arguments." unless args.no_named?
|
||||
|
||||
Formula.installed.sort.each do |formula|
|
||||
tab = Tab.for_formula(formula)
|
||||
|
||||
if args.installed_on_request? && args.installed_as_dependency?
|
||||
statuses = []
|
||||
statuses << "installed on request" if tab.installed_on_request
|
||||
statuses << "installed as dependency" if tab.installed_as_dependency
|
||||
statuses << "installed on request" if args.installed_on_request? && tab.installed_on_request
|
||||
statuses << "installed as dependency" if args.installed_as_dependency? && tab.installed_as_dependency
|
||||
statuses << "poured from bottle" if args.poured_from_bottle? && tab.poured_from_bottle
|
||||
statuses << "built from source" if args.built_from_source? && !tab.poured_from_bottle
|
||||
next if statuses.empty?
|
||||
|
||||
if flags.count > 1
|
||||
puts "#{formula.name}: #{statuses.join(", ")}"
|
||||
elsif (args.installed_on_request? && tab.installed_on_request) ||
|
||||
(args.installed_as_dependency? && tab.installed_as_dependency)
|
||||
else
|
||||
puts formula.name
|
||||
end
|
||||
end
|
||||
|
||||
@ -11,6 +11,9 @@ class Homebrew::Cmd::List
|
||||
end
|
||||
|
||||
class Homebrew::Cmd::List::Args < Homebrew::CLI::Args
|
||||
sig { returns(T::Boolean) }
|
||||
def built_from_source?; end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def cask?; end
|
||||
|
||||
@ -41,6 +44,9 @@ class Homebrew::Cmd::List::Args < Homebrew::CLI::Args
|
||||
sig { returns(T::Boolean) }
|
||||
def pinned?; end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def poured_from_bottle?; end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def r?; end
|
||||
|
||||
|
||||
@ -19,10 +19,11 @@ RSpec.describe Tapioca::Compilers::Args do
|
||||
describe "#args_table" do
|
||||
it "returns a mapping of list args to default values" do
|
||||
expect(compiler.args_table(list_parser).keys).to contain_exactly(
|
||||
:"1?", :cask?, :casks?, :d?, :debug?, :formula?, :formulae?,
|
||||
:full_name?, :h?, :help?, :installed_as_dependency?,
|
||||
:installed_on_request?, :l?, :multiple?, :pinned?,
|
||||
:q?, :quiet?, :r?, :t?, :v?, :verbose?, :versions?
|
||||
:"1?", :built_from_source?, :cask?, :casks?, :d?, :debug?,
|
||||
:formula?, :formulae?, :full_name?, :h?, :help?,
|
||||
:installed_as_dependency?, :installed_on_request?, :l?,
|
||||
:multiple?, :pinned?, :poured_from_bottle?, :q?, :quiet?,
|
||||
:r?, :t?, :v?, :verbose?, :versions?
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user