aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorGautham Goli2017-01-18 15:55:32 +0530
committerGautham Goli2017-01-18 22:35:37 +0530
commit0b3d9031e26b47d0ebf48276616c1c4da01ce336 (patch)
treeda960b9e98800b0fce051aaa21811124dbaac3c4 /Library
parent483c40fb03b83d109795ece1351dcc1ca318a143 (diff)
downloadbrew-0b3d9031e26b47d0ebf48276616c1c4da01ce336.tar.bz2
Add --fix option to brew audit command
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/dev-cmd/audit.rb10
-rw-r--r--Library/Homebrew/rubocops/bottle_block_cop.rb30
2 files changed, 21 insertions, 19 deletions
diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb
index 88d9a535c..c2d6aeaed 100644
--- a/Library/Homebrew/dev-cmd/audit.rb
+++ b/Library/Homebrew/dev-cmd/audit.rb
@@ -1,11 +1,14 @@
-#: * `audit` [`--strict`] [`--online`] [`--new-formula`] [`--display-cop-names`] [`--display-filename`] [<formulae>]:
+#: * `audit` [`--strict`] [`--fix`] [`--online`] [`--new-formula`] [`--display-cop-names`] [`--display-filename`] [<formulae>]:
#: Check <formulae> for Homebrew coding style violations. This should be
#: run before submitting a new formula.
#:
#: If no <formulae> are provided, all of them are checked.
#:
#: If `--strict` is passed, additional checks are run, including RuboCop
-#: style checks.
+#: style checks and custom cop checks.
+#:
+#: If `--fix` is passed, style violations and custom cop violations will be
+#: automatically fixed using RuboCop's `--auto-correct` feature.
#:
#: If `--online` is passed, additional slower checks that require a network
#: connection are run.
@@ -62,8 +65,9 @@ module Homebrew
end
if strict
+ options = { fix: ARGV.flag?("--fix"), realpath: true }
# Check style in a single batch run up front for performance
- style_results = check_style_json(files, realpath: true)
+ style_results = check_style_json(files, options)
end
ff.each do |f|
diff --git a/Library/Homebrew/rubocops/bottle_block_cop.rb b/Library/Homebrew/rubocops/bottle_block_cop.rb
index 7cb97ea89..6b699ab5e 100644
--- a/Library/Homebrew/rubocops/bottle_block_cop.rb
+++ b/Library/Homebrew/rubocops/bottle_block_cop.rb
@@ -1,36 +1,34 @@
module RuboCop
module Cop
- module CustomCops
+ module CustomCops
class CorrectBottleBlock < Cop
- MSG = 'Use rebuild instead of revision in bottle block'.freeze
+ MSG = "Use rebuild instead of revision in bottle block".freeze
def on_block(node)
return if block_length(node).zero?
- method, _args, _body = *node
+ method, _args, body = *node
+ _keyword, method_name = *method
- keyword, method_name = *method
-
- if method_name.equal?(:bottle) and has_revision?(_body)
- add_offense(node, :expression)
- end
+ return unless method_name.equal?(:bottle) && revision?(body)
+ add_offense(node, :expression)
end
private
def autocorrect(node)
- ->(corrector) do
+ lambda do |corrector|
# Check for revision
- method, _args, _body = *node
- if has_revision?(_body)
+ _method, _args, body = *node
+ if revision?(body)
replace_revision(corrector, node)
end
end
end
- def has_revision?(body)
+ def revision?(body)
body.children.each do |method_call_node|
- _receiver, _method_name, *args = *method_call_node
- if _method_name == :revision
+ _receiver, method_name, _args = *method_call_node
+ if method_name == :revision
return true
end
end
@@ -38,10 +36,10 @@ module RuboCop
end
def replace_revision(corrector, node)
- new_source = String.new
+ new_source = ""
node.source.each_line do |line|
if line =~ /\A\s*revision/
- line = line.sub('revision','rebuild')
+ line = line.sub("revision", "rebuild")
end
new_source << line
end