diff --git a/Library/Homebrew/cmd/audit.rb b/Library/Homebrew/cmd/audit.rb index 4290bec4c9..be6be5c39c 100644 --- a/Library/Homebrew/cmd/audit.rb +++ b/Library/Homebrew/cmd/audit.rb @@ -70,6 +70,14 @@ class FormulaText /\Z\n/ =~ @text end + def has_non_ascii_character? + /[^\x00-\x7F]/ =~ @text + end + + def has_encoding_comment? + /^# (en)?coding: utf-8$/i =~ @text + end + def =~ regex regex =~ @text end @@ -118,6 +126,14 @@ class FormulaAuditor problem "'__END__' was found, but 'DATA' is not used" end + if text.has_non_ascii_character? and not text.has_encoding_comment? + problem "Found non-ASCII character: add `# encoding: UTF-8` in the first line" + end + + if text.has_encoding_comment? and not text.has_non_ascii_character? + problem "Remove the redundant `# encoding: UTF-8`" + end + unless text.has_trailing_newline? problem "File should end with a newline" end