Merge pull request #10031 from hyuraku/only_path_formula_or_cask
add function to define path
This commit is contained in:
commit
dc52ff620b
@ -97,6 +97,11 @@ module Homebrew
|
|||||||
Context::ContextStruct.new(debug: debug?, quiet: quiet?, verbose: verbose?)
|
Context::ContextStruct.new(debug: debug?, quiet: quiet?, verbose: verbose?)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def only_formula_or_cask
|
||||||
|
return :formula if formula? && !cask?
|
||||||
|
return :cask if cask? && !formula?
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def option_to_name(option)
|
def option_to_name(option)
|
||||||
|
|||||||
@ -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] ||=
|
||||||
|
|||||||
@ -69,9 +69,6 @@ module Homebrew
|
|||||||
def fetch
|
def fetch
|
||||||
args = fetch_args.parse
|
args = fetch_args.parse
|
||||||
|
|
||||||
only = :formula if args.formula? && !args.cask?
|
|
||||||
only = :cask if args.cask? && !args.formula?
|
|
||||||
|
|
||||||
bucket = if args.deps?
|
bucket = if args.deps?
|
||||||
args.named.to_formulae_and_casks.flat_map do |formula_or_cask|
|
args.named.to_formulae_and_casks.flat_map do |formula_or_cask|
|
||||||
case formula_or_cask
|
case formula_or_cask
|
||||||
@ -84,7 +81,7 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
args.named.to_formulae_and_casks(only: only)
|
args.named.to_formulae_and_casks
|
||||||
end.uniq
|
end.uniq
|
||||||
|
|
||||||
puts "Fetching: #{bucket * ", "}" if bucket.size > 1
|
puts "Fetching: #{bucket * ", "}" if bucket.size > 1
|
||||||
|
|||||||
@ -35,9 +35,7 @@ module Homebrew
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
only = :formula if args.formula? && !args.cask?
|
homepages = args.named.to_formulae_and_casks.map do |formula_or_cask|
|
||||||
only = :cask if args.cask? && !args.formula?
|
|
||||||
homepages = args.named.to_formulae_and_casks(only: only).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
|
||||||
|
|||||||
@ -75,9 +75,6 @@ module Homebrew
|
|||||||
def info
|
def info
|
||||||
args = info_args.parse
|
args = info_args.parse
|
||||||
|
|
||||||
only = :formula if args.formula? && !args.cask?
|
|
||||||
only = :cask if args.cask? && !args.formula?
|
|
||||||
|
|
||||||
if args.analytics?
|
if args.analytics?
|
||||||
if args.days.present? && VALID_DAYS.exclude?(args.days)
|
if args.days.present? && VALID_DAYS.exclude?(args.days)
|
||||||
raise UsageError, "--days must be one of #{VALID_DAYS.join(", ")}"
|
raise UsageError, "--days must be one of #{VALID_DAYS.join(", ")}"
|
||||||
@ -93,17 +90,17 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
print_analytics(args: args, only: only)
|
print_analytics(args: args)
|
||||||
elsif args.json
|
elsif args.json
|
||||||
print_json(args: args, only: only)
|
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: only).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: only)
|
print_info(args: args)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -115,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: only).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
|
||||||
@ -138,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: only).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
|
||||||
@ -172,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)
|
||||||
@ -195,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: only)
|
args.named.to_formulae_to_casks
|
||||||
end
|
end
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|||||||
@ -131,9 +131,6 @@ module Homebrew
|
|||||||
def install
|
def install
|
||||||
args = install_args.parse
|
args = install_args.parse
|
||||||
|
|
||||||
only = :formula if args.formula? && !args.cask?
|
|
||||||
only = :cask if args.cask? && !args.formula?
|
|
||||||
|
|
||||||
args.named.each do |name|
|
args.named.each do |name|
|
||||||
next if File.exist?(name)
|
next if File.exist?(name)
|
||||||
next if name !~ HOMEBREW_TAP_FORMULA_REGEX && name !~ HOMEBREW_CASK_TAP_CASK_REGEX
|
next if name !~ HOMEBREW_TAP_FORMULA_REGEX && name !~ HOMEBREW_CASK_TAP_CASK_REGEX
|
||||||
@ -151,7 +148,7 @@ module Homebrew
|
|||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
|
|
||||||
formulae, casks = args.named.to_formulae_and_casks(only: only)
|
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?
|
||||||
|
|||||||
@ -47,10 +47,11 @@ module Homebrew
|
|||||||
def uninstall
|
def uninstall
|
||||||
args = uninstall_args.parse
|
args = uninstall_args.parse
|
||||||
|
|
||||||
only = :formula if args.formula? && !args.cask?
|
all_kegs, casks = args.named.to_kegs_to_casks(
|
||||||
only = :cask if args.cask? && !args.formula?
|
ignore_unavailable: args.force?,
|
||||||
|
all_kegs: args.force?,
|
||||||
|
)
|
||||||
|
|
||||||
all_kegs, casks = args.named.to_kegs_to_casks(only: only, ignore_unavailable: args.force?, all_kegs: args.force?)
|
|
||||||
kegs_by_rack = all_kegs.group_by(&:rack)
|
kegs_by_rack = all_kegs.group_by(&:rack)
|
||||||
|
|
||||||
Uninstall.uninstall_kegs(
|
Uninstall.uninstall_kegs(
|
||||||
|
|||||||
@ -95,10 +95,7 @@ module Homebrew
|
|||||||
def upgrade
|
def upgrade
|
||||||
args = upgrade_args.parse
|
args = upgrade_args.parse
|
||||||
|
|
||||||
only = :formula if args.formula? && !args.cask?
|
formulae, casks = args.named.to_resolved_formulae_to_casks
|
||||||
only = :cask if args.cask? && !args.formula?
|
|
||||||
|
|
||||||
formulae, casks = args.named.to_resolved_formulae_to_casks(only: only)
|
|
||||||
# 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.
|
||||||
|
|||||||
@ -110,9 +110,6 @@ module Homebrew
|
|||||||
git = args.git?
|
git = args.git?
|
||||||
skip_style = args.skip_style? || args.no_named? || args.tap
|
skip_style = args.skip_style? || args.no_named? || args.tap
|
||||||
|
|
||||||
only = :formula if args.formula? && !args.cask?
|
|
||||||
only = :cask if args.cask? && !args.formula?
|
|
||||||
|
|
||||||
ENV.activate_extensions!
|
ENV.activate_extensions!
|
||||||
ENV.setup_build_environment
|
ENV.setup_build_environment
|
||||||
|
|
||||||
@ -126,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: only)
|
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
|
||||||
|
|||||||
@ -30,9 +30,6 @@ module Homebrew
|
|||||||
def cat
|
def cat
|
||||||
args = cat_args.parse
|
args = cat_args.parse
|
||||||
|
|
||||||
only = :formula if args.formula? && !args.cask?
|
|
||||||
only = :cask if args.cask? && !args.formula?
|
|
||||||
|
|
||||||
cd HOMEBREW_REPOSITORY
|
cd HOMEBREW_REPOSITORY
|
||||||
pager = if Homebrew::EnvConfig.bat?
|
pager = if Homebrew::EnvConfig.bat?
|
||||||
ENV["BAT_CONFIG_PATH"] = Homebrew::EnvConfig.bat_config_path
|
ENV["BAT_CONFIG_PATH"] = Homebrew::EnvConfig.bat_config_path
|
||||||
@ -41,6 +38,6 @@ module Homebrew
|
|||||||
"cat"
|
"cat"
|
||||||
end
|
end
|
||||||
|
|
||||||
safe_system pager, args.named.to_paths(only: only).first
|
safe_system pager, args.named.to_paths.first
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -31,9 +31,6 @@ module Homebrew
|
|||||||
def edit
|
def edit
|
||||||
args = edit_args.parse
|
args = edit_args.parse
|
||||||
|
|
||||||
only = :formula if args.formula? && !args.cask?
|
|
||||||
only = :cask if args.cask? && !args.formula?
|
|
||||||
|
|
||||||
unless (HOMEBREW_REPOSITORY/".git").directory?
|
unless (HOMEBREW_REPOSITORY/".git").directory?
|
||||||
raise <<~EOS
|
raise <<~EOS
|
||||||
Changes will be lost!
|
Changes will be lost!
|
||||||
@ -42,7 +39,7 @@ module Homebrew
|
|||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
|
|
||||||
paths = args.named.to_paths(only: only).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. " \
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user