diff options
| author | Adam Vandenberg | 2013-11-10 12:51:24 -0800 |
|---|---|---|
| committer | Adam Vandenberg | 2013-11-12 07:10:13 -0800 |
| commit | 81bf8a168ada914ec47ca5b37a9fe44f8d797fea (patch) | |
| tree | 75884ec3d2e267ae5562221082178b014290335c /Library | |
| parent | e08ec21abea3f8b9da948529b7d8dda2c42c4cb2 (diff) | |
| download | brew-81bf8a168ada914ec47ca5b37a9fe44f8d797fea.tar.bz2 | |
audit generic binary names
Binaries with names like 'run' or 'service' are likely to conflict.
Warn about these and suggest a libexec-style install instead.
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/cmd/audit.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/formula_cellar_checks.rb | 17 | ||||
| -rw-r--r-- | Library/Homebrew/formula_installer.rb | 2 |
3 files changed, 21 insertions, 0 deletions
diff --git a/Library/Homebrew/cmd/audit.rb b/Library/Homebrew/cmd/audit.rb index 10b37e57a..80c2e45e5 100644 --- a/Library/Homebrew/cmd/audit.rb +++ b/Library/Homebrew/cmd/audit.rb @@ -562,7 +562,9 @@ class FormulaAuditor audit_check_output(check_jars) audit_check_output(check_non_libraries) audit_check_output(check_non_executables(f.bin)) + audit_check_output(check_generic_executables(f.bin)) audit_check_output(check_non_executables(f.sbin)) + audit_check_output(check_generic_executables(f.sbin)) end def audit diff --git a/Library/Homebrew/formula_cellar_checks.rb b/Library/Homebrew/formula_cellar_checks.rb index f123a85cc..b1b52b28a 100644 --- a/Library/Homebrew/formula_cellar_checks.rb +++ b/Library/Homebrew/formula_cellar_checks.rb @@ -89,4 +89,21 @@ module FormulaCellarChecks EOS ] end + + def check_generic_executables bin + return unless bin.directory? + generics = bin.children.select { |g| g.to_s =~ /\/(run|service)$/} + return if generics.empty? + + ["Generic binaries were installed to \"#{bin}\".", + <<-EOS.undent + Binaries with generic names are likely to conflict with other software, + and suggest that this software should be installed to "libexec" and + then symlinked as needed. + + The offending files are: + #{generics * "\n "} + EOS + ] + end end diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index 5870ceeff..1f2f99875 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -499,11 +499,13 @@ class FormulaInstaller def audit_bin print_check_output(check_PATH(f.bin)) unless f.keg_only? print_check_output(check_non_executables(f.bin)) + print_check_output(check_generic_executables(f.bin)) end def audit_sbin print_check_output(check_PATH(f.sbin)) unless f.keg_only? print_check_output(check_non_executables(f.sbin)) + print_check_output(check_generic_executables(f.sbin)) end def audit_lib |
