diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb index 5beab2f30a..ce72549531 100644 --- a/Library/Homebrew/cmd/info.rb +++ b/Library/Homebrew/cmd/info.rb @@ -42,10 +42,6 @@ require "formula" require "keg" require "tab" require "json" -require_relative "../cask/cmd/abstract_command" -require_relative "../cask/cmd/info" -require_relative "../cask/cask_loader" -require_relative "../cask/installer" module Homebrew module_function @@ -130,11 +126,6 @@ module Homebrew if (reason = MissingFormula.reason(f)) $stderr.puts reason end - begin - ohai "Searching for a cask with the name \"#{f}\"" - cask = Cask::CaskLoader.load(f) - Cask::Cmd::Info.info(cask) - end end end end diff --git a/Library/Homebrew/missing_formula.rb b/Library/Homebrew/missing_formula.rb index 4cf229b125..f1008d0de6 100644 --- a/Library/Homebrew/missing_formula.rb +++ b/Library/Homebrew/missing_formula.rb @@ -1,11 +1,17 @@ require "formulary" +require "cask/cmd/abstract_command" +require "cask/cmd/info" +require "cask/cask_loader" +require "cask/installer" module Homebrew module MissingFormula class << self def reason(name, silent: false) - blacklisted_reason(name) || tap_migration_reason(name) || - deleted_reason(name, silent: silent) + search_for_cask(name) + rescue + blacklisted_reason(name) || tap_migration_reason(name) || + deleted_reason(name, silent: silent) end def blacklisted_reason(name) @@ -167,6 +173,11 @@ module Homebrew end end + def search_for_cask(name) + cask = Cask::CaskLoader.load(name) + Cask::Cmd::Info.info(cask) + end + require "extend/os/missing_formula" end end diff --git a/Library/Homebrew/test/cmd/info_spec.rb b/Library/Homebrew/test/cmd/info_spec.rb index 2cc5339cf9..f646fc4f23 100644 --- a/Library/Homebrew/test/cmd/info_spec.rb +++ b/Library/Homebrew/test/cmd/info_spec.rb @@ -19,22 +19,12 @@ describe "brew info", :integration_test do .and be_a_success end - it "looks for a Cask with the same name if a given Formula does not exist" do - expect { brew "info", "basic-cask" } - .to output(/Searching for a cask with the name "basic-cask"/).to_stdout - .and output(/No available formula with the name "basic-cask"/).to_stderr - end + it "looks for a Cask with the same name if a given Formula does not exist", :needs_network do + setup_remote_tap "homebrew/cask" - it "does not look for a Cask if a given Formula exists" do - RSpec::Matchers.define_negated_matcher :not_output, :output - expect { brew "info", "testball" } - .to not_output(/Searching for a cask with the name "testball"/).to_stdout - .and not_to_output.to_stderr - end - - it "prints an error message if a given Cask does not exist" do - expect { brew "info", "non_existant_cask" } - .to output(/No Cask with this name exists./).to_stderr + expect { brew "info", "firefox" } + .to output(/No available formula with the name "firefox"/).to_stderr + .and output(/firefox/).to_stdout end end