From 4c80bf4324956e39073eb7d13c144cdcd0f64fba Mon Sep 17 00:00:00 2001 From: Andrew Janke Date: Mon, 5 Oct 2015 05:38:50 -0400 Subject: [PATCH] audit: add check for 'head' and 'head do' both present Closes Homebrew/homebrew#44626. Signed-off-by: Baptiste Fontaine --- Library/Homebrew/cmd/audit.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/cmd/audit.rb b/Library/Homebrew/cmd/audit.rb index 8c8eb03571..3b27c28f58 100644 --- a/Library/Homebrew/cmd/audit.rb +++ b/Library/Homebrew/cmd/audit.rb @@ -179,15 +179,20 @@ class FormulaAuditor [/^ test do/, "test block"] ] - component_list.map do |regex, name| + present = component_list.map do |regex, name| lineno = text.line_number regex next unless lineno [lineno, name] - end.compact.each_cons(2) do |c1, c2| + end.compact + present.each_cons(2) do |c1, c2| unless c1[0] < c2[0] problem "`#{c1[1]}` (line #{c1[0]}) should be put before `#{c2[1]}` (line #{c2[0]})" end end + present.map!(&:last) + if present.include?("head") && present.include?("head block") + problem "Should not have both `head` and `head do`" + end end def audit_class