set default args

This commit is contained in:
hyuraku 2020-12-17 21:14:18 +09:00
parent 7be216fcbe
commit 0a97cd18a5
11 changed files with 29 additions and 31 deletions

View File

@ -29,6 +29,8 @@ module Homebrew
super(@args) super(@args)
end end
attr_reader :parent
def to_casks def to_casks
@to_casks ||= to_formulae_and_casks(only: :cask).freeze @to_casks ||= to_formulae_and_casks(only: :cask).freeze
end end
@ -44,7 +46,7 @@ module Homebrew
params(only: T.nilable(Symbol), ignore_unavailable: T.nilable(T::Boolean), method: T.nilable(Symbol)) params(only: T.nilable(Symbol), ignore_unavailable: T.nilable(T::Boolean), method: T.nilable(Symbol))
.returns(T::Array[T.any(Formula, Keg, Cask::Cask)]) .returns(T::Array[T.any(Formula, Keg, Cask::Cask)])
end end
def to_formulae_and_casks(only: nil, ignore_unavailable: nil, method: nil) def to_formulae_and_casks(only: parent&.only_formula_or_cask, ignore_unavailable: nil, method: nil)
@to_formulae_and_casks ||= {} @to_formulae_and_casks ||= {}
@to_formulae_and_casks[only] ||= downcased_unique_named.flat_map do |name| @to_formulae_and_casks[only] ||= downcased_unique_named.flat_map do |name|
load_formula_or_cask(name, only: only, method: method) load_formula_or_cask(name, only: only, method: method)
@ -53,14 +55,14 @@ module Homebrew
end.uniq.freeze end.uniq.freeze
end end
def to_formulae_to_casks(only: nil, method: nil) def to_formulae_to_casks(only: parent&.only_formula_or_cask, method: nil)
@to_formulae_to_casks ||= {} @to_formulae_to_casks ||= {}
@to_formulae_to_casks[[method, only]] = to_formulae_and_casks(only: only, method: method) @to_formulae_to_casks[[method, only]] = to_formulae_and_casks(only: only, method: method)
.partition { |o| o.is_a?(Formula) } .partition { |o| o.is_a?(Formula) }
.map(&:freeze).freeze .map(&:freeze).freeze
end end
def to_formulae_and_casks_and_unavailable(only: nil, method: nil) def to_formulae_and_casks_and_unavailable(only: parent&.only_formula_or_cask, method: nil)
@to_formulae_casks_unknowns ||= {} @to_formulae_casks_unknowns ||= {}
@to_formulae_casks_unknowns[method] = downcased_unique_named.map do |name| @to_formulae_casks_unknowns[method] = downcased_unique_named.map do |name|
load_formula_or_cask(name, only: only, method: method) load_formula_or_cask(name, only: only, method: method)
@ -118,7 +120,7 @@ module Homebrew
.freeze .freeze
end end
def to_resolved_formulae_to_casks(only: nil) def to_resolved_formulae_to_casks(only: parent&.only_formula_or_cask)
to_formulae_to_casks(only: only, method: :resolve) to_formulae_to_casks(only: only, method: :resolve)
end end
@ -130,7 +132,7 @@ module Homebrew
# If a cask and formula with the same name exist, includes both their paths # If a cask and formula with the same name exist, includes both their paths
# unless `only` is specified. # unless `only` is specified.
sig { params(only: T.nilable(Symbol), recurse_tap: T::Boolean).returns(T::Array[Pathname]) } sig { params(only: T.nilable(Symbol), recurse_tap: T::Boolean).returns(T::Array[Pathname]) }
def to_paths(only: nil, recurse_tap: false) def to_paths(only: parent&.only_formula_or_cask, recurse_tap: false)
@to_paths ||= {} @to_paths ||= {}
@to_paths[only] ||= downcased_unique_named.flat_map do |name| @to_paths[only] ||= downcased_unique_named.flat_map do |name|
if File.exist?(name) if File.exist?(name)
@ -177,7 +179,7 @@ module Homebrew
params(only: T.nilable(Symbol), ignore_unavailable: T.nilable(T::Boolean), all_kegs: T.nilable(T::Boolean)) params(only: T.nilable(Symbol), ignore_unavailable: T.nilable(T::Boolean), all_kegs: T.nilable(T::Boolean))
.returns([T::Array[Keg], T::Array[Cask::Cask]]) .returns([T::Array[Keg], T::Array[Cask::Cask]])
end end
def to_kegs_to_casks(only: nil, ignore_unavailable: nil, all_kegs: nil) def to_kegs_to_casks(only: parent&.only_formula_or_cask, ignore_unavailable: nil, all_kegs: nil)
method = all_kegs ? :kegs : :keg method = all_kegs ? :kegs : :keg
@to_kegs_to_casks ||= {} @to_kegs_to_casks ||= {}
@to_kegs_to_casks[method] ||= @to_kegs_to_casks[method] ||=

View File

@ -81,7 +81,7 @@ module Homebrew
end end
end end
else else
args.named.to_formulae_and_casks(only: args.only_formula_or_cask) args.named.to_formulae_and_casks
end.uniq end.uniq
puts "Fetching: #{bucket * ", "}" if bucket.size > 1 puts "Fetching: #{bucket * ", "}" if bucket.size > 1

View File

@ -35,7 +35,7 @@ module Homebrew
return return
end end
homepages = args.named.to_formulae_and_casks(only: args.only_formula_or_cask).map do |formula_or_cask| homepages = args.named.to_formulae_and_casks.map do |formula_or_cask|
puts "Opening homepage for #{name_of(formula_or_cask)}" puts "Opening homepage for #{name_of(formula_or_cask)}"
formula_or_cask.homepage formula_or_cask.homepage
end end

View File

@ -90,17 +90,17 @@ module Homebrew
end end
end end
print_analytics(args: args, only: args.only_formula_or_cask) print_analytics(args: args)
elsif args.json elsif args.json
print_json(args: args, only: args.only_formula_or_cask) print_json(args: args)
elsif args.github? elsif args.github?
raise FormulaOrCaskUnspecifiedError if args.no_named? raise FormulaOrCaskUnspecifiedError if args.no_named?
exec_browser(*args.named.to_formulae_and_casks(only: args.only_formula_or_cask).map { |f| github_info(f) }) exec_browser(*args.named.to_formulae_and_casks.map { |f| github_info(f) })
elsif args.no_named? elsif args.no_named?
print_statistics print_statistics
else else
print_info(args: args, only: args.only_formula_or_cask) print_info(args: args)
end end
end end
@ -112,14 +112,14 @@ module Homebrew
puts "#{count} #{"keg".pluralize(count)}, #{HOMEBREW_CELLAR.dup.abv}" puts "#{count} #{"keg".pluralize(count)}, #{HOMEBREW_CELLAR.dup.abv}"
end end
sig { params(args: CLI::Args, only: T.nilable(Symbol)).void } sig { params(args: CLI::Args).void }
def print_analytics(args:, only: nil) def print_analytics(args:)
if args.no_named? if args.no_named?
Utils::Analytics.output(args: args) Utils::Analytics.output(args: args)
return return
end end
args.named.to_formulae_and_casks_and_unavailable(only: args.only_formula_or_cask).each_with_index do |obj, i| args.named.to_formulae_and_casks_and_unavailable.each_with_index do |obj, i|
puts unless i.zero? puts unless i.zero?
case obj case obj
@ -135,9 +135,9 @@ module Homebrew
end end
end end
sig { params(args: CLI::Args, only: T.nilable(Symbol)).void } sig { params(args: CLI::Args).void }
def print_info(args:, only: nil) def print_info(args:)
args.named.to_formulae_and_casks_and_unavailable(only: args.only_formula_or_cask).each_with_index do |obj, i| args.named.to_formulae_and_casks_and_unavailable.each_with_index do |obj, i|
puts unless i.zero? puts unless i.zero?
case obj case obj
@ -169,8 +169,8 @@ module Homebrew
version_hash[version] version_hash[version]
end end
sig { params(args: CLI::Args, only: T.nilable(Symbol)).void } sig { params(args: CLI::Args).void }
def print_json(args:, only: nil) def print_json(args:)
raise FormulaOrCaskUnspecifiedError if !(args.all? || args.installed?) && args.no_named? raise FormulaOrCaskUnspecifiedError if !(args.all? || args.installed?) && args.no_named?
json = case json_version(args.json) json = case json_version(args.json)
@ -192,7 +192,7 @@ module Homebrew
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)]
else else
args.named.to_formulae_to_casks(only: args.only_formula_or_cask) args.named.to_formulae_to_casks
end end
{ {

View File

@ -148,7 +148,7 @@ module Homebrew
EOS EOS
end end
formulae, casks = args.named.to_formulae_and_casks(only: args.only_formula_or_cask) formulae, casks = args.named.to_formulae_and_casks
.partition { |formula_or_cask| formula_or_cask.is_a?(Formula) } .partition { |formula_or_cask| formula_or_cask.is_a?(Formula) }
if casks.any? if casks.any?

View File

@ -48,7 +48,6 @@ module Homebrew
args = uninstall_args.parse args = uninstall_args.parse
all_kegs, casks = args.named.to_kegs_to_casks( all_kegs, casks = args.named.to_kegs_to_casks(
only: args.only_formula_or_cask,
ignore_unavailable: args.force?, ignore_unavailable: args.force?,
all_kegs: args.force?, all_kegs: args.force?,
) )

View File

@ -95,7 +95,7 @@ module Homebrew
def upgrade def upgrade
args = upgrade_args.parse args = upgrade_args.parse
formulae, casks = args.named.to_resolved_formulae_to_casks(only: args.only_formula_or_cask) formulae, casks = args.named.to_resolved_formulae_to_casks
# If one or more formulae are specified, but no casks were # If one or more formulae are specified, but no casks were
# specified, we want to make note of that so we don't # specified, we want to make note of that so we don't
# try to upgrade all outdated casks. # try to upgrade all outdated casks.

View File

@ -123,7 +123,7 @@ module Homebrew
elsif args.no_named? elsif args.no_named?
[Formula, Cask::Cask.to_a] [Formula, Cask::Cask.to_a]
else else
args.named.to_formulae_and_casks(only: args.only_formula_or_cask) args.named.to_formulae_and_casks
.partition { |formula_or_cask| formula_or_cask.is_a?(Formula) } .partition { |formula_or_cask| formula_or_cask.is_a?(Formula) }
end end
style_files = args.named.to_paths unless skip_style style_files = args.named.to_paths unless skip_style

View File

@ -38,6 +38,6 @@ module Homebrew
"cat" "cat"
end end
safe_system pager, args.named.to_paths(only: args.only_formula_or_cask).first safe_system pager, args.named.to_paths.first
end end
end end

View File

@ -39,7 +39,7 @@ module Homebrew
EOS EOS
end end
paths = args.named.to_paths(only: args.only_formula_or_cask).select do |path| paths = args.named.to_paths.select do |path|
next path if path.exist? next path if path.exist?
raise UsageError, "#{path} doesn't exist on disk. " \ raise UsageError, "#{path} doesn't exist on disk. " \

View File

@ -48,13 +48,10 @@ module Homebrew
def style def style
args = style_args.parse args = style_args.parse
only = :formula if args.formula? && !args.cask?
only = :cask if args.cask? && !args.formula?
target = if args.no_named? target = if args.no_named?
nil nil
else else
args.named.to_paths(only: only) args.named.to_paths
end end
only_cops = args.only_cops only_cops = args.only_cops