aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/rubocops/options_cop.rb
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/rubocops/options_cop.rb')
-rw-r--r--Library/Homebrew/rubocops/options_cop.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/Library/Homebrew/rubocops/options_cop.rb b/Library/Homebrew/rubocops/options_cop.rb
index 83d853f10..eb2a837be 100644
--- a/Library/Homebrew/rubocops/options_cop.rb
+++ b/Library/Homebrew/rubocops/options_cop.rb
@@ -16,5 +16,32 @@ module RuboCop
end
end
end
+
+ module FormulaAuditStrict
+ class Options < FormulaCop
+ DEPRECATION_MSG = "macOS has been 64-bit only since 10.6 so universal options are deprecated.".freeze
+
+ def audit_formula(_node, _class_node, _parent_class_node, body_node)
+ option_call_nodes = find_every_method_call_by_name(body_node, :option)
+ option_call_nodes.each do |option_call|
+ offending_node(option_call)
+ option = string_content(parameters(option_call).first)
+ problem DEPRECATION_MSG if option == "universal"
+
+ if option !~ /with(out)?-/ &&
+ option != "cxx11" &&
+ option != "universal"
+ problem "Options should begin with with/without."\
+ " Migrate '--#{option}' with `deprecated_option`."
+ end
+
+ next unless option =~ /^with(out)?-(?:checks?|tests)$/
+ next if depends_on?("check", :optional, :recommended)
+ problem "Use '--with#{Regexp.last_match(1)}-test' instead of '--#{option}'."\
+ " Migrate '--#{option}' with `deprecated_option`."
+ end
+ end
+ end
+ end
end
end