diagnostic: use FromTapLoader to check 3rd-party formula

Signed-off-by: Michael Cho <michael@michaelcho.dev>
This commit is contained in:
Michael Cho 2024-03-11 19:43:22 -04:00
parent 2d774654e2
commit 15dd3317f8
No known key found for this signature in database
GPG Key ID: 55E85E28A7CD1E85

View File

@ -835,25 +835,20 @@ module Homebrew
deleted_formulae = kegs.filter_map do |keg|
tap = Tab.for_keg(keg).tap
keg_name = tap ? "#{tap}/#{keg.name}" : keg.name
loadable = [
Formulary::FromAPILoader,
Formulary::FromTapLoader,
Formulary::FromNameLoader,
].any? do |loader_class|
loader = begin
loader_class.try_new(keg.name, warn: false)
loader_class.try_new(keg_name, warn: false)
rescue TapFormulaAmbiguityError => e
e.loaders.first
end
if loader
# If we know the tap, ignore all other taps.
next false if tap && loader.tap != tap
next true
end
false
loader.instance_of?(Formulary::FromTapLoader) ? loader.path.exist? : loader.present?
end
keg.name unless loadable