aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Vandenberg2010-08-08 10:17:53 -0700
committerAdam Vandenberg2010-08-08 11:22:14 -0700
commit90e8a6309a4f05544894dc320ac4635b895d606e (patch)
treeda297306eb58d682d5e8386be556b959eb76401f
parentfe691212f634f5193a32c50e4f4c8757238560f5 (diff)
downloadhomebrew-90e8a6309a4f05544894dc320ac4635b895d606e.tar.bz2
brew audit - more aggressive path shortcut suggestions
-rwxr-xr-xLibrary/Contributions/examples/brew-audit.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/Library/Contributions/examples/brew-audit.rb b/Library/Contributions/examples/brew-audit.rb
index cceda040f..cd838cced 100755
--- a/Library/Contributions/examples/brew-audit.rb
+++ b/Library/Contributions/examples/brew-audit.rb
@@ -12,10 +12,12 @@ ff.each do |f|
File.open(f.path, "r") { |afile| text = afile.read }
+ # Commented-out cmake support from default template
if text =~ /# depends_on 'cmake'/
problems << " * Commented cmake support found."
end
+ # SourceForge URL madness
if text =~ /\?use_mirror=/
problems << " * Remove 'use_mirror' from url."
end
@@ -25,16 +27,36 @@ ff.each do |f|
problems << " * Check indentation of 'depends_on'."
end
+ # Check for string concatenation; prefer interpolation
if text =~ /(#\{\w+\s*\+\s*['"][^}]+\})/
problems << " * Try not to concatenate paths in string interpolation:\n #{$1}"
end
+ # Prefer formula path shortcuts in Pathname+
+ if text =~ %r{\(\s*(prefix\s*\+\s*(['"])(bin|include|lib|libexec|sbin|share))}
+ problems << " * \"(#{$1}...#{$2})\" should be \"(#{$3}+...)\""
+ end
+
+ # Prefer formula path shortcuts in strings
+ if text =~ %r[(\#\{prefix\}/(bin|include|lib|libexec|sbin|share))]
+ problems << " * \"#{$1}\" should be \"\#{#{$2}}\""
+ end
+
+ if text =~ %r[(\#\{prefix\}/share/man/(man[1-8]))]
+ problems << " * \"#{$1}\" should be \"\#{#{$2}}\""
+ end
+
+ if text =~ %r[(\#\{prefix\}/share/(info|man))]
+ problems << " * \"#{$1}\" should be \"\#{#{$2}}\""
+ end
+
# Don't complain about spaces in patches
split_patch = (text.split("__END__")[0]).strip()
if split_patch =~ /[ ]+$/
problems << " * Trailing whitespace was found."
end
+ # Don't depend_on aliases; use full name
aliases = Formula.aliases
f.deps.select {|d| aliases.include? d}.each do |d|
problems << " * Dep #{d} is an alias; switch to the real name."