From 296d48ba7af0daf010fdb412288b395ea2422bfb Mon Sep 17 00:00:00 2001 From: Stevie Howard Date: Fri, 6 Apr 2018 22:12:29 -0700 Subject: [PATCH 1/2] Handle error when 'brew search' can't reach GitHub --- Library/Homebrew/cmd/search.rb | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/cmd/search.rb b/Library/Homebrew/cmd/search.rb index 4ba5247f12..57b0d736fb 100644 --- a/Library/Homebrew/cmd/search.rb +++ b/Library/Homebrew/cmd/search.rb @@ -111,8 +111,16 @@ module Homebrew end valid_dirnames = ["Formula", "HomebrewFormula", "Casks", "."].freeze - matches = GitHub.search_code(user: ["Homebrew", "caskroom"], filename: query, extension: "rb") - + matches = begin + GitHub.search_code( + user: ["Homebrew", "caskroom"], + filename: query, + extension: "rb", + ) + rescue GitHub::Error => error + opoo "Error searching on GitHub: #{error}\n" + [] + end matches.map do |match| dirname, filename = File.split(match["path"]) next unless valid_dirnames.include?(dirname) From d74721acc72289f6c9db4c731af2ddf7020e1aa1 Mon Sep 17 00:00:00 2001 From: Stevie Howard Date: Fri, 6 Apr 2018 23:14:30 -0700 Subject: [PATCH 2/2] More granular 'brew search' query == simpler code --- Library/Homebrew/cmd/search.rb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Library/Homebrew/cmd/search.rb b/Library/Homebrew/cmd/search.rb index 57b0d736fb..e3b16bad6e 100644 --- a/Library/Homebrew/cmd/search.rb +++ b/Library/Homebrew/cmd/search.rb @@ -110,10 +110,10 @@ module Homebrew $stderr.puts Formatter.headline("Searching taps on GitHub...", color: :blue) end - valid_dirnames = ["Formula", "HomebrewFormula", "Casks", "."].freeze matches = begin GitHub.search_code( user: ["Homebrew", "caskroom"], + path: ["Formula", "HomebrewFormula", "Casks", "."], filename: query, extension: "rb", ) @@ -122,11 +122,10 @@ module Homebrew [] end matches.map do |match| - dirname, filename = File.split(match["path"]) - next unless valid_dirnames.include?(dirname) + filename = File.basename(match["path"], ".rb") tap = Tap.fetch(match["repository"]["full_name"]) next if tap.installed? && match["repository"]["owner"]["login"] != "caskroom" - "#{tap.name}/#{File.basename(filename, ".rb")}" + "#{tap.name}/#{filename}" end.compact end