From a0d069b30946a1a48051482f41a92299df82eeb5 Mon Sep 17 00:00:00 2001 From: hyuraku <32809703+hyuraku@users.noreply.github.com> Date: Sun, 17 May 2020 17:23:23 +0900 Subject: [PATCH 1/6] brew doctor shows deleted formulae --- Library/Homebrew/diagnostic.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Library/Homebrew/diagnostic.rb b/Library/Homebrew/diagnostic.rb index cdf37ee2fe..f7a50e4d50 100644 --- a/Library/Homebrew/diagnostic.rb +++ b/Library/Homebrew/diagnostic.rb @@ -832,6 +832,25 @@ module Homebrew EOS end + def check_deleted_formula + formulae = Dir.children(HOMEBREW_CELLAR) + formulae.delete(".keepme") + deleted_formulae = [] + formulae.each do |f| + Formula[f] + rescue + deleted_formulae << f + end + return if deleted_formulae.blank? + + message = <<~EOS + Some installed formulae are deleted. + You should find replacements for the following formulae: + #{deleted_formulae.*"\n "} + EOS + message + end + def all methods.map(&:to_s).grep(/^check_/) end From 7ac337181a3abbecc99c36d3702e7a0662117584 Mon Sep 17 00:00:00 2001 From: hyuraku <32809703+hyuraku@users.noreply.github.com> Date: Mon, 18 May 2020 20:41:55 +0900 Subject: [PATCH 2/6] use helper methods --- Library/Homebrew/diagnostic.rb | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Library/Homebrew/diagnostic.rb b/Library/Homebrew/diagnostic.rb index f7a50e4d50..d16172e291 100644 --- a/Library/Homebrew/diagnostic.rb +++ b/Library/Homebrew/diagnostic.rb @@ -833,20 +833,19 @@ module Homebrew end def check_deleted_formula - formulae = Dir.children(HOMEBREW_CELLAR) - formulae.delete(".keepme") + kegs = Keg.all deleted_formulae = [] - formulae.each do |f| - Formula[f] + kegs.each do |keg| + keg.to_formula rescue - deleted_formulae << f + deleted_formulae << keg.name end return if deleted_formulae.blank? message = <<~EOS - Some installed formulae are deleted. + Some installed formulae were deleted! You should find replacements for the following formulae: - #{deleted_formulae.*"\n "} + #{deleted_formulae.join("\n ")} EOS message end From c263c755aabe58e3481bbb5ca237298f6015fd1a Mon Sep 17 00:00:00 2001 From: hyuraku <32809703+hyuraku@users.noreply.github.com> Date: Tue, 19 May 2020 22:22:31 +0900 Subject: [PATCH 3/6] check tap_path size --- Library/Homebrew/diagnostic.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/diagnostic.rb b/Library/Homebrew/diagnostic.rb index d16172e291..7d90db0445 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" @@ -836,9 +837,8 @@ module Homebrew kegs = Keg.all deleted_formulae = [] kegs.each do |keg| - keg.to_formula - rescue - deleted_formulae << keg.name + keg_name = keg.name + deleted_formulae << keg_name if Formulary.tap_paths(keg_name).size != 1 end return if deleted_formulae.blank? From e1cf1b2183ff7ef845db0e9f5472796df799601f Mon Sep 17 00:00:00 2001 From: hyuraku <32809703+hyuraku@users.noreply.github.com> Date: Tue, 19 May 2020 23:16:45 +0900 Subject: [PATCH 4/6] uninstall python2 at test --- .github/workflows/tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 4f6cf50084..694132d49b 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -71,6 +71,7 @@ jobs: # Link old gettext (otherwise `brew doctor` is sad) brew link gettext + brew uninstall --force python@2 fi brew doctor From 38e0aa8800e73bca37f86fb4abb81badb5e7970b Mon Sep 17 00:00:00 2001 From: hyuraku <32809703+hyuraku@users.noreply.github.com> Date: Tue, 19 May 2020 23:58:33 +0900 Subject: [PATCH 5/6] change condition --- Library/Homebrew/diagnostic.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/diagnostic.rb b/Library/Homebrew/diagnostic.rb index 7d90db0445..ae7bb34fa9 100644 --- a/Library/Homebrew/diagnostic.rb +++ b/Library/Homebrew/diagnostic.rb @@ -838,7 +838,7 @@ module Homebrew deleted_formulae = [] kegs.each do |keg| keg_name = keg.name - deleted_formulae << keg_name if Formulary.tap_paths(keg_name).size != 1 + deleted_formulae << keg_name if Formulary.tap_paths(keg_name).blank? end return if deleted_formulae.blank? From fbabeb446839ea1bd327d39612486293647af85b Mon Sep 17 00:00:00 2001 From: hyuraku <32809703+hyuraku@users.noreply.github.com> Date: Tue, 19 May 2020 23:58:41 +0900 Subject: [PATCH 6/6] add a comment --- .github/workflows/tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 694132d49b..b82b5dafa3 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -71,6 +71,8 @@ jobs: # Link old gettext (otherwise `brew doctor` is sad) brew link gettext + + # remove deleted formula brew uninstall --force python@2 fi brew doctor