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
|
when 2..Float::INFINITY
|
||||||
loaders = possible_tap_casks.map(&FromTapPathLoader.method(:new))
|
loaders = possible_tap_casks.map(&FromTapPathLoader.method(:new))
|
||||||
|
|
||||||
raise CaskError, <<~EOS
|
raise TapCaskAmbiguityError.new(ref, loaders)
|
||||||
Cask #{ref} exists in multiple taps:
|
|
||||||
#{loaders.map { |loader| " #{loader.tap}/#{loader.token}" }.join("\n")}
|
|
||||||
EOS
|
|
||||||
end
|
end
|
||||||
|
|
||||||
possible_installed_cask = Cask.new(ref)
|
possible_installed_cask = Cask.new(ref)
|
||||||
|
|||||||
@ -47,14 +47,10 @@ module Cask
|
|||||||
token = path.basename.to_s
|
token = path.basename.to_s
|
||||||
|
|
||||||
begin
|
begin
|
||||||
if (tap_path = CaskLoader.tap_paths(token).first)
|
CaskLoader.load(token, config: config)
|
||||||
CaskLoader::FromTapPathLoader.new(tap_path).load(config: config)
|
rescue TapCaskAmbiguityError
|
||||||
elsif (caskroom_path = Pathname.glob(path.join(".metadata/*/*/*/*.rb")).first) &&
|
tap_path = CaskLoader.tap_paths(token).first
|
||||||
(!Homebrew::EnvConfig.install_from_api? || !Homebrew::API::CaskSource.available?(token))
|
CaskLoader::FromTapPathLoader.new(tap_path).load(config: config)
|
||||||
CaskLoader::FromPathLoader.new(caskroom_path).load(config: config)
|
|
||||||
else
|
|
||||||
CaskLoader.load(token, config: config)
|
|
||||||
end
|
|
||||||
rescue CaskUnavailableError
|
rescue CaskUnavailableError
|
||||||
# Don't blow up because of a single unavailable cask.
|
# Don't blow up because of a single unavailable cask.
|
||||||
nil
|
nil
|
||||||
|
|||||||
@ -124,6 +124,20 @@ module Cask
|
|||||||
end
|
end
|
||||||
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.
|
# Error when a cask already exists.
|
||||||
#
|
#
|
||||||
# @api private
|
# @api private
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user