From 999c4743d03c2c99a5938305f9541b819e06c070 Mon Sep 17 00:00:00 2001 From: Zach Auten Date: Sun, 24 Mar 2019 15:28:34 -0400 Subject: [PATCH] Added flag for cask_reason to output cask info or just message with cask name --- Library/Homebrew/cmd/info.rb | 2 +- Library/Homebrew/missing_formula.rb | 12 +++++++----- Library/Homebrew/test/missing_formula_spec.rb | 17 +++++++++++++---- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb index edd8b7d2a6..5ea7fb3d05 100644 --- a/Library/Homebrew/cmd/info.rb +++ b/Library/Homebrew/cmd/info.rb @@ -89,7 +89,7 @@ module Homebrew end ofail e.message # No formula with this name, try a missing formula lookup - if (reason = MissingFormula.reason(f) || MissingFormula.cask_reason(f)) + if (reason = MissingFormula.reason(f, show_info: true)) $stderr.puts reason end end diff --git a/Library/Homebrew/missing_formula.rb b/Library/Homebrew/missing_formula.rb index 74c90c457f..3ddfa9346b 100644 --- a/Library/Homebrew/missing_formula.rb +++ b/Library/Homebrew/missing_formula.rb @@ -6,8 +6,9 @@ require "cask/cask_loader" module Homebrew module MissingFormula class << self - def reason(name, silent: false) - blacklisted_reason(name) || tap_migration_reason(name) || deleted_reason(name, silent: silent) + def reason(name, silent: false, show_info: false) + cask_reason(name, silent: silent, show_info: show_info) || blacklisted_reason(name) || + tap_migration_reason(name) || deleted_reason(name, silent: silent) end def blacklisted_reason(name) @@ -189,12 +190,13 @@ module Homebrew end end - def cask_reason(name, silent: false) + def cask_reason(name, silent: false, show_info: false) return if silent cask = Cask::CaskLoader.load(name) - reason = "Found the following cask named \"#{name}\" instead:\n" - reason << Cask::Cmd::Info.get_info(cask) + reason = "Found a cask named \"#{name}\" instead.\n" + reason << Cask::Cmd::Info.get_info(cask) if show_info + reason rescue Cask::CaskUnavailableError nil end diff --git a/Library/Homebrew/test/missing_formula_spec.rb b/Library/Homebrew/test/missing_formula_spec.rb index 1600e01e96..47f2b7667e 100644 --- a/Library/Homebrew/test/missing_formula_spec.rb +++ b/Library/Homebrew/test/missing_formula_spec.rb @@ -138,16 +138,25 @@ describe Homebrew::MissingFormula do end describe "::cask_reason", :cask do - subject { described_class.cask_reason(formula) } + subject { described_class.cask_reason(formula, show_info: show_info) } - context "with a missing formula that exists as a cask" do + context "with a formula name that is a cask and show_info: false" do let(:formula) { "local-caffeine" } + let(:show_info) { false } - it { is_expected.to match(/Found the following cask named "local-caffeine" instead:\nlocal-caffeine: 1.2.3\n/) } + it { is_expected.to match(/Found a cask named "local-caffeine" instead./) } end - context "with a missing formula that does not share a name with a cask" do + context "with a formula name that is a cask and show_info: true" do + let(:formula) { "local-caffeine" } + let(:show_info) { true } + + it { is_expected.to match(/Found a cask named "local-caffeine" instead.\nlocal-caffeine: 1.2.3\n/) } + end + + context "with a formula name that is not a cask" do let(:formula) { "missing-formula" } + let(:show_info) { false } it { is_expected.to be_nil } end