aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike McQuaid2016-08-02 10:59:39 +0100
committerMike McQuaid2016-08-02 12:44:41 +0100
commit0302a6bc7cc72aed9b729e9d465856e65b6c8b2c (patch)
treece67a5f4d0b2898db553446a2f1811c1af3173bc
parentebe8b8d328bba2ec5f450482f4a88ee1df4bb833 (diff)
downloadbrew-0302a6bc7cc72aed9b729e9d465856e65b6c8b2c.tar.bz2
audit: add --new-formula option.
Rather than nudge people to run `--strict` and then ignore some of the results sometimes (e.g. GitHub repository notability) instead add a dedicated `--new-formula` option that implies this is a one-time advisory check.
-rw-r--r--Library/Homebrew/cmd/audit.rb21
-rw-r--r--Library/Homebrew/cmd/create.rb2
-rw-r--r--Library/Homebrew/dev-cmd/test-bot.rb2
-rw-r--r--share/doc/homebrew/brew.1.html12
-rw-r--r--share/man/man1/brew.111
5 files changed, 27 insertions, 21 deletions
diff --git a/Library/Homebrew/cmd/audit.rb b/Library/Homebrew/cmd/audit.rb
index 5171ec711..5827c054c 100644
--- a/Library/Homebrew/cmd/audit.rb
+++ b/Library/Homebrew/cmd/audit.rb
@@ -1,15 +1,19 @@
-#: * `audit` [`--strict`] [`--online`] [`--display-cop-names`] [`--display-filename`] [<formulae>]:
+#: * `audit` [`--strict`] [`--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. This should be used when creating new formulae.
+#: style checks.
#:
#: If `--online` is passed, additional slower checks that require a network
-#: connection are run. This should be used when creating for new formulae.
-#:
+#: connection are run.
+#
+#: If `--new-formula` is passed, various additional checks are run that check
+#: if a new formula is eligable for Homebrew. This should be used when creating
+#: new formulae and implies `--strict` and `--online`.
+#
#: If `--display-cop-names` is passed, the RuboCop cop name for each violation
#: is included in the output.
#:
@@ -43,9 +47,10 @@ module Homebrew
formula_count = 0
problem_count = 0
- strict = ARGV.include? "--strict"
+ new_formula = ARGV.include? "--new-formula"
+ strict = new_formula || ARGV.include?("--strict")
style = strict && RUBY_2_OR_LATER
- online = ARGV.include? "--online"
+ online = new_formula || ARGV.include?("--online")
ENV.activate_extensions!
ENV.setup_build_environment
@@ -63,7 +68,7 @@ module Homebrew
end
ff.each do |f|
- options = { :strict => strict, :online => online }
+ options = { :new_formula => new_formula, :strict => strict, :online => online }
options[:style_offenses] = style_results.file_offenses(f.path) if style
fa = FormulaAuditor.new(f, options)
fa.audit
@@ -150,6 +155,7 @@ class FormulaAuditor
def initialize(formula, options = {})
@formula = formula
+ @new_formula = !!options[:new_formula]
@strict = !!options[:strict]
@online = !!options[:online]
# Accept precomputed style offense results, for efficiency
@@ -534,6 +540,7 @@ class FormulaAuditor
def audit_github_repository
return unless @online
+ return unless @new_formula
regex = %r{https?://github\.com/([^/]+)/([^/]+)/?.*}
_, user, repo = *regex.match(formula.stable.url) if formula.stable
diff --git a/Library/Homebrew/cmd/create.rb b/Library/Homebrew/cmd/create.rb
index ed71a6d39..9be990318 100644
--- a/Library/Homebrew/cmd/create.rb
+++ b/Library/Homebrew/cmd/create.rb
@@ -85,7 +85,7 @@ module Homebrew
fc.generate!
- puts "Please `brew audit --strict #{fc.name}` before submitting, thanks."
+ puts "Please `brew audit --new-formula #{fc.name}` before submitting, thanks."
exec_editor fc.path
end
diff --git a/Library/Homebrew/dev-cmd/test-bot.rb b/Library/Homebrew/dev-cmd/test-bot.rb
index c7309b114..0c1beeca2 100644
--- a/Library/Homebrew/dev-cmd/test-bot.rb
+++ b/Library/Homebrew/dev-cmd/test-bot.rb
@@ -445,7 +445,7 @@ module Homebrew
fetch_args << "--force" if ARGV.include? "--cleanup"
audit_args = [formula_name]
- audit_args << "--strict" << "--online" if @added_formulae.include? formula_name
+ audit_args << "--new-formula" if @added_formulae.include? formula_name
if formula.stable
unless satisfied_requirements?(formula, :stable)
diff --git a/share/doc/homebrew/brew.1.html b/share/doc/homebrew/brew.1.html
index 007edd11c..ad1b1f392 100644
--- a/share/doc/homebrew/brew.1.html
+++ b/share/doc/homebrew/brew.1.html
@@ -39,18 +39,20 @@ If no search term is given, all locally available formulae are listed.</p></dd>
Read more at <a href="https://git.io/brew-analytics" data-bare-link="true">https://git.io/brew-analytics</a>.</p></dd>
<dt><code>analytics</code> (<code>on</code>|<code>off</code>)</dt><dd><p>Turn on/off Homebrew's analytics.</p></dd>
<dt><code>analytics</code> <code>regenerate-uuid</code></dt><dd><p>Regenerate UUID used in Homebrew's analytics.</p></dd>
-<dt><code>audit</code> [<code>--strict</code>] [<code>--online</code>] [<code>--display-cop-names</code>] [<code>--display-filename</code>] [<var>formulae</var>]</dt><dd><p>Check <var>formulae</var> for Homebrew coding style violations. This should be
+<dt><code>audit</code> [<code>--strict</code>] [<code>--online</code>] [<code>--new-formula</code>] [<code>--display-cop-names</code>] [<code>--display-filename</code>] [<var>formulae</var>]</dt><dd><p>Check <var>formulae</var> for Homebrew coding style violations. This should be
run before submitting a new formula.</p>
<p>If no <var>formulae</var> are provided, all of them are checked.</p>
<p>If <code>--strict</code> is passed, additional checks are run, including RuboCop
-style checks. This should be used when creating new formulae.</p>
+style checks.</p>
<p>If <code>--online</code> is passed, additional slower checks that require a network
-connection are run. This should be used when creating for new formulae.</p>
-
-<p>If <code>--display-cop-names</code> is passed, the RuboCop cop name for each violation
+connection are run.
+If <code>--new-formula</code> is passed, various additional checks are run that check
+if a new formula is eligable for Homebrew. This should be used when creating
+new formulae and implies <code>--strict</code> and <code>--online</code>.
+If <code>--display-cop-names</code> is passed, the RuboCop cop name for each violation
is included in the output.</p>
<p>If <code>--display-filename</code> is passed, every line of output is prefixed with the
diff --git a/share/man/man1/brew.1 b/share/man/man1/brew.1
index b235f7662..877711103 100644
--- a/share/man/man1/brew.1
+++ b/share/man/man1/brew.1
@@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
-.TH "BREW" "1" "July 2016" "Homebrew" "brew"
+.TH "BREW" "1" "August 2016" "Homebrew" "brew"
.
.SH "NAME"
\fBbrew\fR \- The missing package manager for OS X
@@ -56,20 +56,17 @@ Turn on/off Homebrew\'s analytics\.
Regenerate UUID used in Homebrew\'s analytics\.
.
.TP
-\fBaudit\fR [\fB\-\-strict\fR] [\fB\-\-online\fR] [\fB\-\-display\-cop\-names\fR] [\fB\-\-display\-filename\fR] [\fIformulae\fR]
+\fBaudit\fR [\fB\-\-strict\fR] [\fB\-\-online\fR] [\fB\-\-new\-formula\fR] [\fB\-\-display\-cop\-names\fR] [\fB\-\-display\-filename\fR] [\fIformulae\fR]
Check \fIformulae\fR for Homebrew coding style violations\. This should be run before submitting a new formula\.
.
.IP
If no \fIformulae\fR are provided, all of them are checked\.
.
.IP
-If \fB\-\-strict\fR is passed, additional checks are run, including RuboCop style checks\. This should be used when creating new formulae\.
+If \fB\-\-strict\fR is passed, additional checks are run, including RuboCop style checks\.
.
.IP
-If \fB\-\-online\fR is passed, additional slower checks that require a network connection are run\. This should be used when creating for new formulae\.
-.
-.IP
-If \fB\-\-display\-cop\-names\fR is passed, the RuboCop cop name for each violation is included in the output\.
+If \fB\-\-online\fR is passed, additional slower checks that require a network connection are run\. If \fB\-\-new\-formula\fR is passed, various additional checks are run that check if a new formula is eligable for Homebrew\. This should be used when creating new formulae and implies \fB\-\-strict\fR and \fB\-\-online\fR\. If \fB\-\-display\-cop\-names\fR is passed, the RuboCop cop name for each violation is included in the output\.
.
.IP
If \fB\-\-display\-filename\fR is passed, every line of output is prefixed with the name of the file or formula being audited, to make the output easy to grep\.