Fix brew audit Formula/formula.rb

Fix a regression introduced in PR #8542, which wouldn’t exclude
formulae and casks from stricter style checks properly unless tapped.
This caused `brew audit Formula/formula.rb` to report violations which
were not meant for formulae and casks.

The fix is to add Exclude patterns for formulae and casks in any
`git clone`d tap’s working tree.

Working outside of the productive Homebrew installation makes sure that
the latter doesn’t interfere with development, and vice versa.
It also helps track work in progress, especially if one tends to forget
things.
This commit is contained in:
Claudia 2020-09-03 17:52:36 +02:00 committed by Markus Reiter
parent 07b3aa69f8
commit b36fd8ebd9
2 changed files with 29 additions and 11 deletions

View File

@ -108,7 +108,8 @@ Style/HashTransformValues:
# Allow for license expressions # Allow for license expressions
Style/HashAsLastArrayItem: Style/HashAsLastArrayItem:
Exclude: Exclude:
- 'Taps/*/*/{Formula/,}*.rb' - 'Taps/*/*/*.rb'
- '/**/Formula/*.rb'
# Enabled now LineLength is lowish. # Enabled now LineLength is lowish.
Style/IfUnlessModifier: Style/IfUnlessModifier:
@ -165,7 +166,8 @@ Performance/Caller:
Style/DisableCopsWithinSourceCodeDirective: Style/DisableCopsWithinSourceCodeDirective:
Enabled: true Enabled: true
Include: Include:
- 'Taps/*/*/{Formula/,Casks/,}*.rb' - 'Taps/*/*/*.rb'
- '/**/{Formula,Casks}/*.rb'
# make our hashes consistent # make our hashes consistent
Layout/HashAlignment: Layout/HashAlignment:
@ -175,7 +177,8 @@ Layout/HashAlignment:
# `system` is a special case and aligns on second argument, so allow this for formulae. # `system` is a special case and aligns on second argument, so allow this for formulae.
Layout/ArgumentAlignment: Layout/ArgumentAlignment:
Exclude: Exclude:
- 'Taps/*/*/{Formula/,}*.rb' - 'Taps/*/*/*.rb'
- '/**/Formula/*.rb'
# this is a bit less "floaty" # this is a bit less "floaty"
Layout/CaseIndentation: Layout/CaseIndentation:
@ -199,7 +202,8 @@ Lint/AmbiguousBlockAssociation:
Lint/DuplicateBranch: Lint/DuplicateBranch:
Exclude: Exclude:
- 'Taps/*/*/{Formula,Casks,}/*.rb' - 'Taps/*/*/*.rb'
- '/**/{Formula,Casks}/*.rb'
# needed for lazy_object magic # needed for lazy_object magic
Naming/MemoizedInstanceVariableName: Naming/MemoizedInstanceVariableName:
@ -210,7 +214,8 @@ Naming/MemoizedInstanceVariableName:
# TODO: fix these as `ruby -w` complains about them. # TODO: fix these as `ruby -w` complains about them.
Lint/AmbiguousRegexpLiteral: Lint/AmbiguousRegexpLiteral:
Exclude: Exclude:
- 'Taps/*/*/{Formula/,}*.rb' - 'Taps/*/*/*.rb'
- '/**/Formula/*.rb'
# useful for metaprogramming in RSpec # useful for metaprogramming in RSpec
Lint/ConstantDefinitionInBlock: Lint/ConstantDefinitionInBlock:
@ -220,30 +225,38 @@ Lint/ConstantDefinitionInBlock:
# so many of these in formulae and can't be autocorrected # so many of these in formulae and can't be autocorrected
Lint/ParenthesesAsGroupedExpression: Lint/ParenthesesAsGroupedExpression:
Exclude: Exclude:
- 'Taps/*/*/{Formula/,}*.rb' - 'Taps/*/*/*.rb'
- '/**/Formula/*.rb'
# Most metrics don't make sense to apply for casks/formulae/taps. # Most metrics don't make sense to apply for casks/formulae/taps.
Metrics/AbcSize: Metrics/AbcSize:
Exclude: Exclude:
- 'Taps/**/*' - 'Taps/**/*'
- '/**/{Formula,Casks}/*.rb'
Metrics/BlockLength: Metrics/BlockLength:
Exclude: Exclude:
- 'Taps/**/*' - 'Taps/**/*'
- '/**/{Formula,Casks}/*.rb'
Metrics/ClassLength: Metrics/ClassLength:
Exclude: Exclude:
- 'Taps/**/*' - 'Taps/**/*'
- '/**/{Formula,Casks}/*.rb'
Metrics/CyclomaticComplexity: Metrics/CyclomaticComplexity:
Exclude: Exclude:
- 'Taps/**/*' - 'Taps/**/*'
- '/**/{Formula,Casks}/*.rb'
Metrics/MethodLength: Metrics/MethodLength:
Exclude: Exclude:
- 'Taps/**/*' - 'Taps/**/*'
- '/**/{Formula,Casks}/*.rb'
Metrics/ModuleLength: Metrics/ModuleLength:
Exclude: Exclude:
- 'Taps/**/*' - 'Taps/**/*'
- '/**/{Formula,Casks}/*.rb'
Metrics/PerceivedComplexity: Metrics/PerceivedComplexity:
Exclude: Exclude:
- 'Taps/**/*' - 'Taps/**/*'
- '/**/{Formula,Casks}/*.rb'
# allow those that are standard # allow those that are standard
# TODO: try to remove some of these # TODO: try to remove some of these
@ -284,7 +297,8 @@ Layout/LineLength:
Sorbet/FalseSigil: Sorbet/FalseSigil:
Exclude: Exclude:
- 'Taps/**/*.rb' - 'Taps/**/*'
- '/**/{Formula,Casks}/*.rb'
- 'Homebrew/test/**/Casks/**/*.rb' - 'Homebrew/test/**/Casks/**/*.rb'
Sorbet/StrictSigil: Sorbet/StrictSigil:
@ -320,6 +334,7 @@ Style/ClassVars:
Style/Documentation: Style/Documentation:
Exclude: Exclude:
- 'Taps/**/*' - 'Taps/**/*'
- '/**/{Formula,Casks}/*.rb'
- '**/*.rbi' - '**/*.rbi'
Style/DocumentationMethod: Style/DocumentationMethod:
@ -330,7 +345,8 @@ Style/DocumentationMethod:
Style/FrozenStringLiteralComment: Style/FrozenStringLiteralComment:
EnforcedStyle: always EnforcedStyle: always
Exclude: Exclude:
- 'Taps/*/*/{Formula,Casks,}/*.rb' - 'Taps/*/*/*.rb'
- '/**/{Formula,Casks}/*.rb'
- 'Homebrew/test/**/Casks/**/*.rb' - 'Homebrew/test/**/Casks/**/*.rb'
- '**/*.rbi' - '**/*.rbi'
@ -342,7 +358,8 @@ Style/GlobalVars:
# potential for errors in formulae too high with this # potential for errors in formulae too high with this
Style/GuardClause: Style/GuardClause:
Exclude: Exclude:
- 'Taps/*/*/{Formula/,Casks/,}*.rb' - 'Taps/*/*/*.rb'
- '/**/{Formula,Casks}/*.rb'
# avoid hash rockets where possible # avoid hash rockets where possible
Style/HashSyntax: Style/HashSyntax:
@ -351,7 +368,8 @@ Style/HashSyntax:
# so many of these in formulae and can't be autocorrected # so many of these in formulae and can't be autocorrected
Style/StringConcatenation: Style/StringConcatenation:
Exclude: Exclude:
- 'Taps/*/*/{Formula/,Casks/,}*.rb' - 'Taps/*/*/*.rb'
- '/**/{Formula,Casks}/*.rb'
# ruby style guide favorite # ruby style guide favorite
Style/StringLiterals: Style/StringLiterals:

View File

@ -9,6 +9,6 @@ cask "with-conditional-caveats" do
# a do block may print and use a DSL # a do block may print and use a DSL
caveats do caveats do
puts "This caveat is conditional" if false # rubocop:disable Lint/LiteralAsCondition puts "This caveat is conditional" unless String("Caffeine") == "Caffeine"
end end
end end