Handle depends_on "homebrew/core/foo" for HOMEBREW_INSTALL_FROM_API

This commit is contained in:
Rylan Polster 2021-10-29 14:03:24 -04:00
parent dae9a34a85
commit 268a32f0aa
No known key found for this signature in database
GPG Key ID: 46A744940CFF4D64
3 changed files with 8 additions and 1 deletions

View File

@ -44,6 +44,11 @@ class Dependency
formula = Formulary.factory(name) formula = Formulary.factory(name)
formula.build = BuildOptions.new(options, formula.options) formula.build = BuildOptions.new(options, formula.options)
formula formula
rescue CoreTapFormulaUnavailableError
raise if !Homebrew::EnvConfig.install_from_api? || !Homebrew::API::Bottle.available?(name)
Homebrew::API::Bottle.fetch_bottles(name)
retry
end end
def unavailable_core_formula? def unavailable_core_formula?

View File

@ -213,7 +213,7 @@ class FormulaInstaller
begin begin
compute_dependencies compute_dependencies
rescue TapFormulaUnavailableError => e rescue TapFormulaUnavailableError => e
raise if e.tap.installed? raise if e.tap.installed? || e.tap.core_tap?
e.tap.install e.tap.install
retry retry

View File

@ -343,6 +343,8 @@ module Formulary
rescue FormulaClassUnavailableError => e rescue FormulaClassUnavailableError => e
raise TapFormulaClassUnavailableError.new(tap, name, e.path, e.class_name, e.class_list), "", e.backtrace raise TapFormulaClassUnavailableError.new(tap, name, e.path, e.class_name, e.class_list), "", e.backtrace
rescue FormulaUnavailableError => e rescue FormulaUnavailableError => e
raise CoreTapFormulaUnavailableError.new(name), "", e.backtrace if tap.core_tap?
raise TapFormulaUnavailableError.new(tap, name), "", e.backtrace raise TapFormulaUnavailableError.new(tap, name), "", e.backtrace
end end