diff options
| author | Adam Vandenberg | 2010-08-08 10:17:53 -0700 |
|---|---|---|
| committer | Adam Vandenberg | 2010-08-08 11:22:14 -0700 |
| commit | 90e8a6309a4f05544894dc320ac4635b895d606e (patch) | |
| tree | da297306eb58d682d5e8386be556b959eb76401f | |
| parent | fe691212f634f5193a32c50e4f4c8757238560f5 (diff) | |
| download | homebrew-90e8a6309a4f05544894dc320ac4635b895d606e.tar.bz2 | |
brew audit - more aggressive path shortcut suggestions
| -rwxr-xr-x | Library/Contributions/examples/brew-audit.rb | 22 |
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." |
