From cb64bc4df38ca845c412dc70d77debe2ac02cb52 Mon Sep 17 00:00:00 2001 From: apainintheneck Date: Tue, 13 Dec 2022 20:38:00 -0800 Subject: [PATCH] Move pkg type logic into search_name Now the search_name method takes the command line args and only returns package types that line up with those args. That means it will only return casks if casks are valid and same with formulae. --- Library/Homebrew/cmd/install.rb | 17 ++++++----------- Library/Homebrew/cmd/search.rb | 21 +++++++-------------- Library/Homebrew/search.rb | 20 +++++++++++++------- 3 files changed, 26 insertions(+), 32 deletions(-) diff --git a/Library/Homebrew/cmd/install.rb b/Library/Homebrew/cmd/install.rb index 227bedacd0..8dc6251c46 100644 --- a/Library/Homebrew/cmd/install.rb +++ b/Library/Homebrew/cmd/install.rb @@ -303,15 +303,9 @@ module Homebrew # Don't treat formula/cask name as a regex query = string_or_regex = name - all_formulae, all_casks = search_names(query, string_or_regex) + all_formulae, all_casks = search_names(query, string_or_regex, args) - print_formulae = args.formula? - print_casks = args.cask? - print_formulae = print_casks = true if !print_formulae && !print_casks - print_formulae &&= all_formulae.any? - print_casks &&= all_casks.any? - - if print_formulae + if all_formulae.any? ohai "Formulae", Formatter.columns(all_formulae) first_formula = all_formulae.first.to_s puts <<~EOS @@ -320,8 +314,8 @@ module Homebrew brew install #{first_formula} EOS end - puts if print_formulae && print_casks - if print_casks + puts if all_formulae.any? && all_casks.any? + if all_casks.any? ohai "Casks", Formatter.columns(all_casks) first_cask = all_casks.first.to_s puts <<~EOS @@ -330,7 +324,8 @@ module Homebrew brew install --cask #{first_cask} EOS end + return if all_formulae.any? || all_casks.any? - odie "No formulae or casks found for #{name}." if !print_formulae && !print_casks + odie "No formulae or casks found for #{name}." end end diff --git a/Library/Homebrew/cmd/search.rb b/Library/Homebrew/cmd/search.rb index d20d4a9089..bc0e6d01b1 100644 --- a/Library/Homebrew/cmd/search.rb +++ b/Library/Homebrew/cmd/search.rb @@ -86,8 +86,8 @@ module Homebrew elsif args.pull_request? search_pull_requests(query, args) else - formulae, casks = search_names(query, string_or_regex) - print_results(formulae, casks, query, args) + formulae, casks = search_names(query, string_or_regex, args) + print_results(formulae, casks, query) end puts "Use `brew desc` to list packages with a short description." if args.verbose? @@ -130,30 +130,23 @@ module Homebrew GitHub.print_pull_requests_matching(query, only) end - def print_results(all_formulae, all_casks, query, args) - print_formulae = args.formula? - print_casks = args.cask? - print_formulae = print_casks = true if !print_formulae && !print_casks - print_formulae &&= all_formulae.any? - print_casks &&= all_casks.any? + def print_results(all_formulae, all_casks, query) + count = all_formulae.size + all_casks.size - count = 0 - if all_formulae + if all_formulae.any? if $stdout.tty? ohai "Formulae", Formatter.columns(all_formulae) else puts all_formulae end - count += all_formulae.count end - puts if print_formulae && print_casks - if print_casks + puts if all_formulae.any? && all_casks.any? + if all_casks.any? if $stdout.tty? ohai "Casks", Formatter.columns(all_casks) else puts all_casks end - count += all_casks.count end print_missing_formula_help(query, count.positive?) if all_casks.exclude?(query) diff --git a/Library/Homebrew/search.rb b/Library/Homebrew/search.rb index c67cff9a33..674e956b40 100644 --- a/Library/Homebrew/search.rb +++ b/Library/Homebrew/search.rb @@ -115,16 +115,22 @@ module Homebrew [] end - def search_names(query, string_or_regex) + def search_names(query, string_or_regex, args) + both = !args.formula? && !args.cask? + remote_results = search_taps(query, silent: true) - local_formulae = search_formulae(string_or_regex) - remote_formulae = remote_results[:formulae] - all_formulae = local_formulae + remote_formulae + all_formulae = if args.formula? || both + search_formulae(string_or_regex) + remote_results[:formulae] + else + [] + end - local_casks = search_casks(string_or_regex) - remote_casks = remote_results[:casks] - all_casks = local_casks + remote_casks + all_casks = if args.cask? || both + search_casks(string_or_regex) + remote_results[:casks] + else + [] + end [all_formulae, all_casks] end