Merge pull request #16879 from cho-m/diagnostic-taploader

diagnostic: use FromTapLoader to check 3rd-party formula
This commit is contained in:
Michael Cho 2024-03-14 02:16:31 -04:00 committed by GitHub
commit 697d41674c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

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