From c85ff0923ec090692f16e9e68544ecaa79d0b411 Mon Sep 17 00:00:00 2001 From: Bo Anderson Date: Wed, 15 Apr 2020 00:57:30 +0100 Subject: [PATCH] formula_cellar_checks: check for shim dir references --- Library/Homebrew/formula_cellar_checks.rb | 24 +++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Library/Homebrew/formula_cellar_checks.rb b/Library/Homebrew/formula_cellar_checks.rb index b793188396..1dd08c9cb1 100644 --- a/Library/Homebrew/formula_cellar_checks.rb +++ b/Library/Homebrew/formula_cellar_checks.rb @@ -201,6 +201,29 @@ module FormulaCellarChecks EOS end + def check_shim_references(prefix) + return unless prefix.directory? + + keg = Keg.new(prefix) + + matches = [] + keg.each_unique_file_matching(HOMEBREW_SHIMS_PATH) do |f| + match = f.relative_path_from(keg.to_path) + + next if match.to_s.match? %r{^share/doc/.+?/INFO_BIN$} + + matches << match + end + + return if matches.empty? + + <<~EOS + Files were found with references to the Homebrew shims directory. + The offending files are: + #{matches * "\n "} + EOS + end + def audit_installed @new_formula ||= false @@ -216,6 +239,7 @@ module FormulaCellarChecks problem_if_output(check_elisp_dirname(formula.share, formula.name)) problem_if_output(check_elisp_root(formula.share, formula.name)) problem_if_output(check_python_packages(formula.lib, formula.deps)) + problem_if_output(check_shim_references(formula.prefix)) end alias generic_audit_installed audit_installed