diff --git a/Library/Homebrew/cli/args.rb b/Library/Homebrew/cli/args.rb index 8ca8dea7d1..153faca11d 100644 --- a/Library/Homebrew/cli/args.rb +++ b/Library/Homebrew/cli/args.rb @@ -133,6 +133,11 @@ module Homebrew Context::ContextStruct.new(debug: debug?, quiet: quiet?, verbose: verbose?) end + def only_path_formula_or_cask + return :formula if formula? && !cask? + return :cask if cask? && !formula? + end + private def option_to_name(option) diff --git a/Library/Homebrew/cmd/fetch.rb b/Library/Homebrew/cmd/fetch.rb index 825bed6846..894ecf92b6 100644 --- a/Library/Homebrew/cmd/fetch.rb +++ b/Library/Homebrew/cmd/fetch.rb @@ -69,9 +69,6 @@ module Homebrew def fetch args = fetch_args.parse - only = :formula if args.formula? && !args.cask? - only = :cask if args.cask? && !args.formula? - bucket = if args.deps? args.named.to_formulae_and_casks.flat_map do |formula_or_cask| case formula_or_cask @@ -84,7 +81,7 @@ module Homebrew end end else - args.named.to_formulae_and_casks(only: only) + args.named.to_formulae_and_casks(only: args.only_path_formula_or_cask) end.uniq puts "Fetching: #{bucket * ", "}" if bucket.size > 1 diff --git a/Library/Homebrew/cmd/home.rb b/Library/Homebrew/cmd/home.rb index 6e5d75c6a4..b07c40929c 100644 --- a/Library/Homebrew/cmd/home.rb +++ b/Library/Homebrew/cmd/home.rb @@ -35,9 +35,7 @@ module Homebrew return end - only = :formula if args.formula? && !args.cask? - only = :cask if args.cask? && !args.formula? - homepages = args.named.to_formulae_and_casks(only: only).map do |formula_or_cask| + homepages = args.named.to_formulae_and_casks(only: args.only_path_formula_or_cask).map do |formula_or_cask| puts "Opening homepage for #{name_of(formula_or_cask)}" formula_or_cask.homepage end diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb index edd3d6b489..44d215844c 100644 --- a/Library/Homebrew/cmd/info.rb +++ b/Library/Homebrew/cmd/info.rb @@ -75,9 +75,6 @@ module Homebrew def info args = info_args.parse - only = :formula if args.formula? && !args.cask? - only = :cask if args.cask? && !args.formula? - if args.analytics? if args.days.present? && VALID_DAYS.exclude?(args.days) raise UsageError, "--days must be one of #{VALID_DAYS.join(", ")}" @@ -93,17 +90,17 @@ module Homebrew end end - print_analytics(args: args, only: only) + print_analytics(args: args, only: args.only_path_formula_or_cask) elsif args.json - print_json(args: args, only: only) + print_json(args: args, only: args.only_path_formula_or_cask) elsif args.github? 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(only: args.only_path_formula_or_cask).map { |f| github_info(f) }) elsif args.no_named? print_statistics else - print_info(args: args, only: only) + print_info(args: args, only: args.only_path_formula_or_cask) end end @@ -122,7 +119,7 @@ module Homebrew return 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(only: args.only_path_formula_or_cask).each_with_index do |obj, i| puts unless i.zero? case obj @@ -140,7 +137,7 @@ module Homebrew sig { params(args: CLI::Args, only: T.nilable(Symbol)).void } def print_info(args:, only: nil) - args.named.to_formulae_and_casks_and_unavailable(only: only).each_with_index do |obj, i| + args.named.to_formulae_and_casks_and_unavailable(only: args.only_path_formula_or_cask).each_with_index do |obj, i| puts unless i.zero? case obj @@ -195,7 +192,7 @@ module Homebrew elsif args.installed? [Formula.installed.sort, Cask::Caskroom.casks.sort_by(&:full_name)] else - args.named.to_formulae_to_casks(only: only) + args.named.to_formulae_to_casks(only: args.only_path_formula_or_cask) end { diff --git a/Library/Homebrew/cmd/install.rb b/Library/Homebrew/cmd/install.rb index aa0bb63ac5..ca845dc895 100644 --- a/Library/Homebrew/cmd/install.rb +++ b/Library/Homebrew/cmd/install.rb @@ -131,9 +131,6 @@ module Homebrew def install args = install_args.parse - only = :formula if args.formula? && !args.cask? - only = :cask if args.cask? && !args.formula? - args.named.each do |name| next if File.exist?(name) next if name !~ HOMEBREW_TAP_FORMULA_REGEX && name !~ HOMEBREW_CASK_TAP_CASK_REGEX @@ -151,7 +148,7 @@ module Homebrew EOS end - formulae, casks = args.named.to_formulae_and_casks(only: only) + formulae, casks = args.named.to_formulae_and_casks(only: args.only_path_formula_or_cask) .partition { |formula_or_cask| formula_or_cask.is_a?(Formula) } if casks.any? diff --git a/Library/Homebrew/cmd/uninstall.rb b/Library/Homebrew/cmd/uninstall.rb index dac06da9ee..7b0d36f63e 100644 --- a/Library/Homebrew/cmd/uninstall.rb +++ b/Library/Homebrew/cmd/uninstall.rb @@ -47,10 +47,12 @@ module Homebrew def uninstall args = uninstall_args.parse - only = :formula if args.formula? && !args.cask? - only = :cask if args.cask? && !args.formula? + all_kegs, casks = args.named.to_kegs_to_casks( + only: args.only_path_formula_or_cask, + 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) Uninstall.uninstall_kegs( diff --git a/Library/Homebrew/cmd/upgrade.rb b/Library/Homebrew/cmd/upgrade.rb index ae0f3ba280..ed4c952028 100644 --- a/Library/Homebrew/cmd/upgrade.rb +++ b/Library/Homebrew/cmd/upgrade.rb @@ -95,10 +95,7 @@ module Homebrew def upgrade args = upgrade_args.parse - only = :formula if args.formula? && !args.cask? - only = :cask if args.cask? && !args.formula? - - formulae, casks = args.named.to_resolved_formulae_to_casks(only: only) + formulae, casks = args.named.to_resolved_formulae_to_casks(only: args.only_path_formula_or_cask) # If one or more formulae are specified, but no casks were # specified, we want to make note of that so we don't # try to upgrade all outdated casks. diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index 8072739efe..abbd4514bf 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -110,9 +110,6 @@ module Homebrew git = args.git? 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.setup_build_environment @@ -126,7 +123,7 @@ module Homebrew elsif args.no_named? [Formula, Cask::Cask.to_a] else - args.named.to_formulae_and_casks(only: only) + args.named.to_formulae_and_casks(only: args.only_path_formula_or_cask) .partition { |formula_or_cask| formula_or_cask.is_a?(Formula) } end style_files = args.named.to_paths unless skip_style diff --git a/Library/Homebrew/dev-cmd/cat.rb b/Library/Homebrew/dev-cmd/cat.rb index 3554694d60..d816df4fa5 100644 --- a/Library/Homebrew/dev-cmd/cat.rb +++ b/Library/Homebrew/dev-cmd/cat.rb @@ -30,9 +30,6 @@ module Homebrew def cat args = cat_args.parse - only = :formula if args.formula? && !args.cask? - only = :cask if args.cask? && !args.formula? - cd HOMEBREW_REPOSITORY pager = if Homebrew::EnvConfig.bat? ENV["BAT_CONFIG_PATH"] = Homebrew::EnvConfig.bat_config_path @@ -41,6 +38,6 @@ module Homebrew "cat" end - safe_system pager, args.named.to_paths(only: only).first + safe_system pager, args.named.to_paths(only: args.only_path_formula_or_cask).first end end diff --git a/Library/Homebrew/dev-cmd/edit.rb b/Library/Homebrew/dev-cmd/edit.rb index 2553a75952..aa868559a3 100644 --- a/Library/Homebrew/dev-cmd/edit.rb +++ b/Library/Homebrew/dev-cmd/edit.rb @@ -31,9 +31,6 @@ module Homebrew def edit args = edit_args.parse - only = :formula if args.formula? && !args.cask? - only = :cask if args.cask? && !args.formula? - unless (HOMEBREW_REPOSITORY/".git").directory? raise <<~EOS Changes will be lost! @@ -42,7 +39,7 @@ module Homebrew EOS end - paths = args.named.to_paths(only: only).select do |path| + paths = args.named.to_paths(only: args.only_path_formula_or_cask).select do |path| next path if path.exist? raise UsageError, "#{path} doesn't exist on disk. " \