Only tap homebrew/cask on CaskUnavailableError in brew install

This commit is contained in:
Rylan Polster 2021-01-20 12:13:22 -05:00
parent ebba369887
commit 64816651d0
No known key found for this signature in database
GPG Key ID: 46A744940CFF4D64
4 changed files with 12 additions and 8 deletions

View File

@ -99,8 +99,6 @@ module Homebrew
begin begin
return Cask::CaskLoader.load(name, config: Cask::Config.from_args(@parent)) return Cask::CaskLoader.load(name, config: Cask::Config.from_args(@parent))
rescue Cask::CaskUnavailableError => e rescue Cask::CaskUnavailableError => e
retry if Tap.install_default_cask_tap_if_necessary
raise e if only == :cask raise e if only == :cask
end end
end end

View File

@ -153,8 +153,14 @@ module Homebrew
EOS EOS
end end
formulae, casks = args.named.to_formulae_and_casks begin
.partition { |formula_or_cask| formula_or_cask.is_a?(Formula) } formulae, casks = args.named.to_formulae_and_casks
.partition { |formula_or_cask| formula_or_cask.is_a?(Formula) }
rescue FormulaOrCaskUnavailableError, Cask::CaskUnavailableError => e
retry if Tap.install_default_cask_tap_if_necessary(force: args.cask?)
raise e
end
if casks.any? if casks.any?
Cask::Cmd::Install.install_casks( Cask::Cmd::Install.install_casks(

View File

@ -2,10 +2,10 @@
# frozen_string_literal: true # frozen_string_literal: true
class Tap class Tap
def self.install_default_cask_tap_if_necessary def self.install_default_cask_tap_if_necessary(force: false)
return false if default_cask_tap.installed? return false if default_cask_tap.installed?
return false if Tap.untapped_official_taps.include?(default_cask_tap.name) return false if !force && Tap.untapped_official_taps.include?(default_cask_tap.name)
default_cask_tap.install default_cask_tap.install
true true

View File

@ -67,8 +67,8 @@ class Tap
@default_cask_tap ||= fetch("Homebrew", "cask") @default_cask_tap ||= fetch("Homebrew", "cask")
end end
sig { returns(T::Boolean) } sig { params(force: T::Boolean).returns(T::Boolean) }
def self.install_default_cask_tap_if_necessary def self.install_default_cask_tap_if_necessary(force: false)
false false
end end