From 00803b1a0b2a302a84871a05ae2abbdfe7f01a5c Mon Sep 17 00:00:00 2001 From: Alexey Alekhin Date: Wed, 23 Aug 2017 03:23:33 +0200 Subject: brew cask search without query just outputs all available cask tokens --- Library/Homebrew/cask/lib/hbc/cli/search.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'Library') diff --git a/Library/Homebrew/cask/lib/hbc/cli/search.rb b/Library/Homebrew/cask/lib/hbc/cli/search.rb index e89dced92..42be4592a 100644 --- a/Library/Homebrew/cask/lib/hbc/cli/search.rb +++ b/Library/Homebrew/cask/lib/hbc/cli/search.rb @@ -2,8 +2,12 @@ module Hbc class CLI class Search < AbstractCommand def run - results = self.class.search(*args) - self.class.render_results(*results) + if args.empty? + puts Formatter.columns(CLI.nice_listing(Hbc.all_tokens)) + else + results = self.class.search(*args) + self.class.render_results(*results) + end end def self.extract_regexp(string) -- cgit v1.2.3 From a5640fdfeeea7347e51c14abac481f4b210527ab Mon Sep 17 00:00:00 2001 From: Alexey Alekhin Date: Wed, 23 Aug 2017 16:54:21 +0200 Subject: Added rescue block for the remote cask search failure --- Library/Homebrew/cask/lib/hbc/cli/search.rb | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'Library') diff --git a/Library/Homebrew/cask/lib/hbc/cli/search.rb b/Library/Homebrew/cask/lib/hbc/cli/search.rb index 42be4592a..9f4f9f31d 100644 --- a/Library/Homebrew/cask/lib/hbc/cli/search.rb +++ b/Library/Homebrew/cask/lib/hbc/cli/search.rb @@ -19,8 +19,18 @@ module Hbc end def self.search_remote(query) - matches = GitHub.search_code(user: "caskroom", path: "Casks", - filename: query, extension: "rb") + matches = begin GitHub.search_code( + user: "caskroom", + path: "Casks", + filename: query, + extension: "rb" + ) + rescue Exception => e + onoe e + $stderr.puts e.backtrace + [] + end + matches.map do |match| tap = Tap.fetch(match["repository"]["full_name"]) next if tap.installed? -- cgit v1.2.3 From 9e2caa8d6a55c0c48c46d916520ab827a23f504e Mon Sep 17 00:00:00 2001 From: Alexey Alekhin Date: Wed, 23 Aug 2017 17:54:01 +0200 Subject: Fixed style issues --- Library/Homebrew/cask/lib/hbc/cli/search.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'Library') diff --git a/Library/Homebrew/cask/lib/hbc/cli/search.rb b/Library/Homebrew/cask/lib/hbc/cli/search.rb index 9f4f9f31d..fbc2487ae 100644 --- a/Library/Homebrew/cask/lib/hbc/cli/search.rb +++ b/Library/Homebrew/cask/lib/hbc/cli/search.rb @@ -23,14 +23,13 @@ module Hbc user: "caskroom", path: "Casks", filename: query, - extension: "rb" + extension: "rb", ) - rescue Exception => e + rescue StandardError => e onoe e $stderr.puts e.backtrace [] end - matches.map do |match| tap = Tap.fetch(match["repository"]["full_name"]) next if tap.installed? -- cgit v1.2.3 From 15d2a9c7cd2ab37ec7b790ad1c0a4aa653826a60 Mon Sep 17 00:00:00 2001 From: Alexey Alekhin Date: Wed, 23 Aug 2017 19:47:47 +0200 Subject: Formatting fix --- Library/Homebrew/cask/lib/hbc/cli/search.rb | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'Library') diff --git a/Library/Homebrew/cask/lib/hbc/cli/search.rb b/Library/Homebrew/cask/lib/hbc/cli/search.rb index fbc2487ae..2b290bbdf 100644 --- a/Library/Homebrew/cask/lib/hbc/cli/search.rb +++ b/Library/Homebrew/cask/lib/hbc/cli/search.rb @@ -19,12 +19,13 @@ module Hbc end def self.search_remote(query) - matches = begin GitHub.search_code( - user: "caskroom", - path: "Casks", - filename: query, - extension: "rb", - ) + matches = begin + GitHub.search_code( + user: "caskroom", + path: "Casks", + filename: query, + extension: "rb", + ) rescue StandardError => e onoe e $stderr.puts e.backtrace -- cgit v1.2.3 From 2cc6ef48ff6927db568616d2099b9d8163b90652 Mon Sep 17 00:00:00 2001 From: Alexey Alekhin Date: Thu, 24 Aug 2017 00:29:22 +0200 Subject: Narrowed rescued error type --- Library/Homebrew/cask/lib/hbc/cli/search.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Library') diff --git a/Library/Homebrew/cask/lib/hbc/cli/search.rb b/Library/Homebrew/cask/lib/hbc/cli/search.rb index 2b290bbdf..785f4b4b1 100644 --- a/Library/Homebrew/cask/lib/hbc/cli/search.rb +++ b/Library/Homebrew/cask/lib/hbc/cli/search.rb @@ -26,7 +26,7 @@ module Hbc filename: query, extension: "rb", ) - rescue StandardError => e + rescue GitHub::Error => e onoe e $stderr.puts e.backtrace [] -- cgit v1.2.3 From 3b7e0d8dbe3d9652b6d9a81f01bc3e68479b17bc Mon Sep 17 00:00:00 2001 From: Alexey Alekhin Date: Sat, 26 Aug 2017 01:54:24 +0200 Subject: Added tests for cask search with online search failure --- Library/Homebrew/test/cask/cli/search_spec.rb | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'Library') diff --git a/Library/Homebrew/test/cask/cli/search_spec.rb b/Library/Homebrew/test/cask/cli/search_spec.rb index e237ad464..e7065404d 100644 --- a/Library/Homebrew/test/cask/cli/search_spec.rb +++ b/Library/Homebrew/test/cask/cli/search_spec.rb @@ -22,16 +22,29 @@ describe Hbc::CLI::Search, :cask do EOS end + it "returns matches even when online search failed" do + allow(GitHub).to receive(:search_code).and_raise(GitHub::Error.new("reason")) + expect { + Hbc::CLI::Search.run("local") + }.to output(<<-EOS.undent).to_stdout + local-caffeine + local-transmission + EOS + .and output(/^Error: reason\n/).to_stderr + end + it "shows that there are no Casks matching a search term that did not result in anything" do expect { Hbc::CLI::Search.run("foo-bar-baz") }.to output("No Cask found for \"foo-bar-baz\".\n").to_stdout.as_tty end - it "lists all available Casks with no search term" do + it "lists all Casks available offline with no search term" do + allow(GitHub).to receive(:search_code).and_raise(GitHub::Error.new("reason")) expect { Hbc::CLI::Search.run }.to output(/local-caffeine/).to_stdout.as_tty + .and not_to_output.to_stderr end it "ignores hyphens in search terms" do -- cgit v1.2.3 From 68c837f0412f0958817ee2d827b770f26d51bad6 Mon Sep 17 00:00:00 2001 From: Alexey Alekhin Date: Sat, 26 Aug 2017 02:01:08 +0200 Subject: Unified tests formatting for multiline output matching --- Library/Homebrew/test/cask/cli/search_spec.rb | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'Library') diff --git a/Library/Homebrew/test/cask/cli/search_spec.rb b/Library/Homebrew/test/cask/cli/search_spec.rb index e7065404d..f3b693d99 100644 --- a/Library/Homebrew/test/cask/cli/search_spec.rb +++ b/Library/Homebrew/test/cask/cli/search_spec.rb @@ -36,7 +36,9 @@ describe Hbc::CLI::Search, :cask do it "shows that there are no Casks matching a search term that did not result in anything" do expect { Hbc::CLI::Search.run("foo-bar-baz") - }.to output("No Cask found for \"foo-bar-baz\".\n").to_stdout.as_tty + }.to output(<<-EOS.undent).to_stdout.as_tty + No Cask found for "foo-bar-baz". + EOS end it "lists all Casks available offline with no search term" do @@ -68,19 +70,29 @@ describe Hbc::CLI::Search, :cask do it "accepts a regexp argument" do expect { Hbc::CLI::Search.run("/^local-c[a-z]ffeine$/") - }.to output("==> Regexp Matches\nlocal-caffeine\n").to_stdout.as_tty + }.to output(<<-EOS.undent).to_stdout.as_tty + ==> Regexp Matches + local-caffeine + EOS end - it "Returns both exact and partial matches" do + it "returns both exact and partial matches" do expect { Hbc::CLI::Search.run("test-opera") - }.to output(/^==> Exact Match\ntest-opera\n==> Partial Matches\ntest-opera-mail/).to_stdout.as_tty + }.to output(<<-EOS.undent).to_stdout.as_tty + ==> Exact Match + test-opera + ==> Partial Matches + test-opera-mail + EOS end it "does not search the Tap name" do expect { Hbc::CLI::Search.run("caskroom") - }.to output(/^No Cask found for "caskroom"\.\n/).to_stdout.as_tty + }.to output(<<-EOS.undent).to_stdout.as_tty + No Cask found for "caskroom". + EOS end it "doesn't highlight packages that aren't installed" do -- cgit v1.2.3 From 29b0c7d7472dc26c8c8913db9a16e996ce68f6d2 Mon Sep 17 00:00:00 2001 From: Alexey Alekhin Date: Sat, 26 Aug 2017 02:05:35 +0200 Subject: Added a test for no-macthes output to non-TTY --- Library/Homebrew/test/cask/cli/search_spec.rb | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'Library') diff --git a/Library/Homebrew/test/cask/cli/search_spec.rb b/Library/Homebrew/test/cask/cli/search_spec.rb index f3b693d99..48a4d556d 100644 --- a/Library/Homebrew/test/cask/cli/search_spec.rb +++ b/Library/Homebrew/test/cask/cli/search_spec.rb @@ -41,6 +41,13 @@ describe Hbc::CLI::Search, :cask do EOS end + it "doesn't output anything to non-TTY stdout when there are no matches" do + expect { + Hbc::CLI::Search.run("foo-bar-baz") + }.to not_to_output.to_stdout + .and not_to_output.to_stderr + end + it "lists all Casks available offline with no search term" do allow(GitHub).to receive(:search_code).and_raise(GitHub::Error.new("reason")) expect { -- cgit v1.2.3 From 2a3f83b8d4ceeca370a60bbcb494990a2bd20801 Mon Sep 17 00:00:00 2001 From: Alexey Alekhin Date: Sat, 26 Aug 2017 02:37:39 +0200 Subject: Changed online search failure to warning and removed stacktrace --- Library/Homebrew/cask/lib/hbc/cli/search.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'Library') diff --git a/Library/Homebrew/cask/lib/hbc/cli/search.rb b/Library/Homebrew/cask/lib/hbc/cli/search.rb index 785f4b4b1..8fb8b91ec 100644 --- a/Library/Homebrew/cask/lib/hbc/cli/search.rb +++ b/Library/Homebrew/cask/lib/hbc/cli/search.rb @@ -26,9 +26,8 @@ module Hbc filename: query, extension: "rb", ) - rescue GitHub::Error => e - onoe e - $stderr.puts e.backtrace + rescue GitHub::Error => error + opoo "Online search failed: #{error}\n" [] end matches.map do |match| -- cgit v1.2.3 From 6ac0b9881de5a00a884ca5e59553583d1ada0fc5 Mon Sep 17 00:00:00 2001 From: Alexey Alekhin Date: Sat, 26 Aug 2017 02:43:28 +0200 Subject: Fixed test for the changed error message --- Library/Homebrew/test/cask/cli/search_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Library') diff --git a/Library/Homebrew/test/cask/cli/search_spec.rb b/Library/Homebrew/test/cask/cli/search_spec.rb index 48a4d556d..06f0b4b32 100644 --- a/Library/Homebrew/test/cask/cli/search_spec.rb +++ b/Library/Homebrew/test/cask/cli/search_spec.rb @@ -30,7 +30,7 @@ describe Hbc::CLI::Search, :cask do local-caffeine local-transmission EOS - .and output(/^Error: reason\n/).to_stderr + .and output(/^Warning: Online search failed: reason/).to_stderr end it "shows that there are no Casks matching a search term that did not result in anything" do -- cgit v1.2.3 From 68dd0ac918639e6c1cbe7ba1800cda3646ba4e0b Mon Sep 17 00:00:00 2001 From: Alexey Alekhin Date: Thu, 31 Aug 2017 03:03:00 +0200 Subject: Changed warning message as recommended by @reitermarkus --- Library/Homebrew/cask/lib/hbc/cli/search.rb | 2 +- Library/Homebrew/test/cask/cli/search_spec.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'Library') diff --git a/Library/Homebrew/cask/lib/hbc/cli/search.rb b/Library/Homebrew/cask/lib/hbc/cli/search.rb index 8fb8b91ec..d56d0c81f 100644 --- a/Library/Homebrew/cask/lib/hbc/cli/search.rb +++ b/Library/Homebrew/cask/lib/hbc/cli/search.rb @@ -27,7 +27,7 @@ module Hbc extension: "rb", ) rescue GitHub::Error => error - opoo "Online search failed: #{error}\n" + opoo "Error searching on GitHub: #{error}\n" [] end matches.map do |match| diff --git a/Library/Homebrew/test/cask/cli/search_spec.rb b/Library/Homebrew/test/cask/cli/search_spec.rb index 06f0b4b32..85bb42c56 100644 --- a/Library/Homebrew/test/cask/cli/search_spec.rb +++ b/Library/Homebrew/test/cask/cli/search_spec.rb @@ -30,7 +30,7 @@ describe Hbc::CLI::Search, :cask do local-caffeine local-transmission EOS - .and output(/^Warning: Online search failed: reason/).to_stderr + .and output(/^Warning: Error searching on GitHub: reason/).to_stderr end it "shows that there are no Casks matching a search term that did not result in anything" do -- cgit v1.2.3 From 8e5ad9ad9be3587001fb92b4367ddb7cc4c7fc8c Mon Sep 17 00:00:00 2001 From: Alexey Alekhin Date: Sat, 2 Sep 2017 02:29:56 +0200 Subject: Minor tests formatting change --- Library/Homebrew/test/cask/cli/search_spec.rb | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'Library') diff --git a/Library/Homebrew/test/cask/cli/search_spec.rb b/Library/Homebrew/test/cask/cli/search_spec.rb index 85bb42c56..6dc980590 100644 --- a/Library/Homebrew/test/cask/cli/search_spec.rb +++ b/Library/Homebrew/test/cask/cli/search_spec.rb @@ -42,18 +42,16 @@ describe Hbc::CLI::Search, :cask do end it "doesn't output anything to non-TTY stdout when there are no matches" do - expect { - Hbc::CLI::Search.run("foo-bar-baz") - }.to not_to_output.to_stdout - .and not_to_output.to_stderr + expect { Hbc::CLI::Search.run("foo-bar-baz") } + .to not_to_output.to_stdout + .and not_to_output.to_stderr end it "lists all Casks available offline with no search term" do allow(GitHub).to receive(:search_code).and_raise(GitHub::Error.new("reason")) - expect { - Hbc::CLI::Search.run - }.to output(/local-caffeine/).to_stdout.as_tty - .and not_to_output.to_stderr + expect { Hbc::CLI::Search.run } + .to output(/local-caffeine/).to_stdout.as_tty + .and not_to_output.to_stderr end it "ignores hyphens in search terms" do -- cgit v1.2.3 From 50db7db72449d48590352149d778653086b73dbb Mon Sep 17 00:00:00 2001 From: Alexey Alekhin Date: Sat, 2 Sep 2017 14:27:02 +0200 Subject: Updated cask search manpage --- Library/Homebrew/manpages/brew-cask.1.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'Library') diff --git a/Library/Homebrew/manpages/brew-cask.1.md b/Library/Homebrew/manpages/brew-cask.1.md index bfb9cd7a5..715d8fd77 100644 --- a/Library/Homebrew/manpages/brew-cask.1.md +++ b/Library/Homebrew/manpages/brew-cask.1.md @@ -1,5 +1,5 @@ brew-cask(1) - a friendly binary installer for macOS -======================================================== +==================================================== ## SYNOPSIS @@ -85,7 +85,7 @@ names, and other aspects of this manual are still subject to change. If is given, summarize the staged files associated with the given Cask. - + * `outdated` [--greedy] [--verbose|--quiet] [ ...]: Without token arguments, display all the installed Casks that have newer versions available in the tap; otherwise check only the tokens given @@ -101,9 +101,10 @@ names, and other aspects of this manual are still subject to change. Reinstall the given Cask. * `search` or `-S` [ | //]: - Without an argument, display all Casks available for install; otherwise - perform a substring search of known Cask tokens for or, if the - text is delimited by slashes (//), it is interpreted as a + Without an argument, display all locally available Casks for install; no + online search is performed. + Otherwise perform a substring search of known Cask tokens for or, + if the text is delimited by slashes (//), it is interpreted as a Ruby regular expression. * `style` [--fix] [ ... ]: @@ -255,7 +256,7 @@ Environment variables specific to Homebrew-Cask: export HOMEBREW_CASK_OPTS='--appdir=~/Applications --fontdir=/Library/Fonts' Other environment variables: - + * `SUDO_ASKPASS`: When this variable is set, Homebrew-Cask will call `sudo`(8) with the `-A` option. -- cgit v1.2.3