Merge pull request #12350 from Rylan12/install-from-api-core-deps
Handle `depends_on "homebrew/core/foo"` for `HOMEBREW_INSTALL_FROM_API`
This commit is contained in:
commit
9daf5e2d28
@ -212,6 +212,11 @@ class FormulaInstaller
|
|||||||
def verify_deps_exist
|
def verify_deps_exist
|
||||||
begin
|
begin
|
||||||
compute_dependencies
|
compute_dependencies
|
||||||
|
rescue CoreTapFormulaUnavailableError => e
|
||||||
|
raise unless Homebrew::API::Bottle.available? e.name
|
||||||
|
|
||||||
|
Homebrew::API::Bottle.fetch_bottles(e.name)
|
||||||
|
retry
|
||||||
rescue TapFormulaUnavailableError => e
|
rescue TapFormulaUnavailableError => e
|
||||||
raise if e.tap.installed?
|
raise if e.tap.installed?
|
||||||
|
|
||||||
|
|||||||
@ -343,6 +343,10 @@ 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
|
||||||
|
if tap.core_tap? && Homebrew::EnvConfig.install_from_api?
|
||||||
|
raise CoreTapFormulaUnavailableError.new(name), "", e.backtrace
|
||||||
|
end
|
||||||
|
|
||||||
raise TapFormulaUnavailableError.new(tap, name), "", e.backtrace
|
raise TapFormulaUnavailableError.new(tap, name), "", e.backtrace
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -533,6 +537,13 @@ module Formulary
|
|||||||
when URL_START_REGEX
|
when URL_START_REGEX
|
||||||
return FromUrlLoader.new(ref)
|
return FromUrlLoader.new(ref)
|
||||||
when HOMEBREW_TAP_FORMULA_REGEX
|
when HOMEBREW_TAP_FORMULA_REGEX
|
||||||
|
# If `homebrew/core` is specified and not installed, check whether the formula is already installed.
|
||||||
|
if ref.start_with?("homebrew/core/") && !CoreTap.instance.installed? && Homebrew::EnvConfig.install_from_api?
|
||||||
|
name = ref.split("/", 3).last
|
||||||
|
possible_keg_formula = Pathname.new("#{HOMEBREW_PREFIX}/opt/#{name}/.brew/#{name}.rb")
|
||||||
|
return FormulaLoader.new(name, possible_keg_formula) if possible_keg_formula.file?
|
||||||
|
end
|
||||||
|
|
||||||
return TapLoader.new(ref, from: from)
|
return TapLoader.new(ref, from: from)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user