diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 2737da80e7..c6e43af8b2 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -71,6 +71,9 @@ jobs: else # Link old gettext (otherwise `brew doctor` is sad) brew link gettext + + # remove deleted formula + brew uninstall --force python@2 fi brew doctor diff --git a/Library/Homebrew/diagnostic.rb b/Library/Homebrew/diagnostic.rb index cdf37ee2fe..ae7bb34fa9 100644 --- a/Library/Homebrew/diagnostic.rb +++ b/Library/Homebrew/diagnostic.rb @@ -3,6 +3,7 @@ require "keg" require "language/python" require "formula" +require "formulary" require "version" require "development_tools" require "utils/shell" @@ -832,6 +833,23 @@ module Homebrew EOS end + def check_deleted_formula + kegs = Keg.all + deleted_formulae = [] + kegs.each do |keg| + keg_name = keg.name + deleted_formulae << keg_name if Formulary.tap_paths(keg_name).blank? + end + return if deleted_formulae.blank? + + message = <<~EOS + Some installed formulae were deleted! + You should find replacements for the following formulae: + #{deleted_formulae.join("\n ")} + EOS + message + end + def all methods.map(&:to_s).grep(/^check_/) end