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