Merge pull request #10831 from nandahkrishna/cask-autotap
cask_loader: do not auto-tap in FromTapLoader
This commit is contained in:
commit
1e3dab1401
@ -157,7 +157,7 @@ module Cask
|
||||
end
|
||||
|
||||
def load(config:)
|
||||
tap.install unless tap.installed?
|
||||
raise TapCaskUnavailableError.new(tap, token) unless tap.installed?
|
||||
|
||||
super
|
||||
end
|
||||
|
||||
@ -103,6 +103,27 @@ module Cask
|
||||
end
|
||||
end
|
||||
|
||||
# Error when a cask in a specific tap is not available.
|
||||
#
|
||||
# @api private
|
||||
class TapCaskUnavailableError < CaskUnavailableError
|
||||
extend T::Sig
|
||||
|
||||
attr_reader :tap
|
||||
|
||||
def initialize(tap, token)
|
||||
super("#{tap}/#{token}")
|
||||
@tap = tap
|
||||
end
|
||||
|
||||
sig { returns(String) }
|
||||
def to_s
|
||||
s = super
|
||||
s += "\nPlease tap it and then try again: brew tap #{tap}" unless tap.installed?
|
||||
s
|
||||
end
|
||||
end
|
||||
|
||||
# Error when a cask already exists.
|
||||
#
|
||||
# @api private
|
||||
|
||||
@ -132,6 +132,12 @@ module Homebrew
|
||||
|
||||
raise unreadable_error if unreadable_error.present?
|
||||
|
||||
user, repo, short_name = name.downcase.split("/", 3)
|
||||
if repo.present? && short_name.present?
|
||||
tap = Tap.fetch(user, repo)
|
||||
raise TapFormulaOrCaskUnavailableError.new(tap, short_name)
|
||||
end
|
||||
|
||||
raise FormulaOrCaskUnavailableError, name
|
||||
end
|
||||
private :load_formula_or_cask
|
||||
|
||||
@ -97,6 +97,25 @@ class FormulaOrCaskUnavailableError < RuntimeError
|
||||
end
|
||||
end
|
||||
|
||||
# Raised when a formula or cask in a specific tap is not available.
|
||||
class TapFormulaOrCaskUnavailableError < FormulaOrCaskUnavailableError
|
||||
extend T::Sig
|
||||
|
||||
attr_reader :tap
|
||||
|
||||
def initialize(tap, name)
|
||||
super "#{tap}/#{name}"
|
||||
@tap = tap
|
||||
end
|
||||
|
||||
sig { returns(String) }
|
||||
def to_s
|
||||
s = super
|
||||
s += "\nPlease tap it and then try again: brew tap #{tap}" unless tap.installed?
|
||||
s
|
||||
end
|
||||
end
|
||||
|
||||
# Raised when a formula is not available.
|
||||
class FormulaUnavailableError < FormulaOrCaskUnavailableError
|
||||
extend T::Sig
|
||||
|
||||
@ -34,6 +34,14 @@ describe "Exception" do
|
||||
}
|
||||
end
|
||||
|
||||
describe TapFormulaOrCaskUnavailableError do
|
||||
subject(:error) { described_class.new(tap, "foo") }
|
||||
|
||||
let(:tap) { double(Tap, user: "u", repo: "r", to_s: "u/r", installed?: false) }
|
||||
|
||||
its(:to_s) { is_expected.to match(%r{Please tap it and then try again: brew tap u/r}) }
|
||||
end
|
||||
|
||||
describe FormulaUnavailableError do
|
||||
subject(:error) { described_class.new("foo") }
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user