Merge pull request #13443 from Rylan12/caskroom-speed-improvement
Cleanup `Cask::Caskroom::casks`
This commit is contained in:
commit
2b01354f2f
@ -236,10 +236,7 @@ module Cask
|
||||
when 2..Float::INFINITY
|
||||
loaders = possible_tap_casks.map(&FromTapPathLoader.method(:new))
|
||||
|
||||
raise CaskError, <<~EOS
|
||||
Cask #{ref} exists in multiple taps:
|
||||
#{loaders.map { |loader| " #{loader.tap}/#{loader.token}" }.join("\n")}
|
||||
EOS
|
||||
raise TapCaskAmbiguityError.new(ref, loaders)
|
||||
end
|
||||
|
||||
possible_installed_cask = Cask.new(ref)
|
||||
|
||||
@ -47,14 +47,10 @@ module Cask
|
||||
token = path.basename.to_s
|
||||
|
||||
begin
|
||||
if (tap_path = CaskLoader.tap_paths(token).first)
|
||||
CaskLoader::FromTapPathLoader.new(tap_path).load(config: config)
|
||||
elsif (caskroom_path = Pathname.glob(path.join(".metadata/*/*/*/*.rb")).first) &&
|
||||
(!Homebrew::EnvConfig.install_from_api? || !Homebrew::API::CaskSource.available?(token))
|
||||
CaskLoader::FromPathLoader.new(caskroom_path).load(config: config)
|
||||
else
|
||||
CaskLoader.load(token, config: config)
|
||||
end
|
||||
CaskLoader.load(token, config: config)
|
||||
rescue TapCaskAmbiguityError
|
||||
tap_path = CaskLoader.tap_paths(token).first
|
||||
CaskLoader::FromTapPathLoader.new(tap_path).load(config: config)
|
||||
rescue CaskUnavailableError
|
||||
# Don't blow up because of a single unavailable cask.
|
||||
nil
|
||||
|
||||
@ -124,6 +124,20 @@ module Cask
|
||||
end
|
||||
end
|
||||
|
||||
# Error when a cask with the same name is found in multiple taps.
|
||||
#
|
||||
# @api private
|
||||
class TapCaskAmbiguityError < CaskError
|
||||
extend T::Sig
|
||||
|
||||
def initialize(ref, loaders)
|
||||
super <<~EOS
|
||||
Cask #{ref} exists in multiple taps:
|
||||
#{loaders.map { |loader| " #{loader.tap}/#{loader.token}" }.join("\n")}
|
||||
EOS
|
||||
end
|
||||
end
|
||||
|
||||
# Error when a cask already exists.
|
||||
#
|
||||
# @api private
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user