Merge pull request #2679 from MikeMcQuaid/parallel-rubocop
Use parallel RuboCop
This commit is contained in:
commit
744e7dd190
@ -2,9 +2,9 @@ language: ruby
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/.gem/ruby
|
||||
- $HOME/Library/Caches/Homebrew/style
|
||||
- $HOME/Library/Caches/Homebrew/tests
|
||||
- Library/Homebrew/vendor/bundle
|
||||
# For parallel_rspec
|
||||
- Library/Homebrew/tmp
|
||||
|
||||
matrix:
|
||||
include:
|
||||
|
||||
@ -23,23 +23,67 @@ FormulaAuditStrict/ComponentsRedundancy:
|
||||
FormulaAudit/Homepage:
|
||||
Enabled: true
|
||||
|
||||
Metrics/AbcSize:
|
||||
# `system` is a special case and aligns on second argument
|
||||
Layout/AlignParameters:
|
||||
Enabled: false
|
||||
|
||||
Layout/CaseIndentation:
|
||||
EnforcedStyle: end
|
||||
|
||||
Layout/EmptyLineBetweenDefs:
|
||||
AllowAdjacentOneLineDefs: true
|
||||
|
||||
Layout/IndentArray:
|
||||
EnforcedStyle: special_inside_parentheses
|
||||
|
||||
Layout/IndentHeredoc:
|
||||
EnforcedStyle: unindent
|
||||
|
||||
# conflicts with DSL-style path concatenation with `/`
|
||||
Layout/SpaceAroundOperators:
|
||||
Enabled: false
|
||||
|
||||
# favor parens-less DSL-style arguments
|
||||
Lint/AmbiguousOperator:
|
||||
Enabled: false
|
||||
|
||||
# so many of these in formulae and can't be autocorrected
|
||||
Lint/AmbiguousRegexpLiteral:
|
||||
Enabled: false
|
||||
|
||||
# favor parens-less DSL-style arguments
|
||||
Lint/AmbiguousBlockAssociation:
|
||||
Enabled: false
|
||||
|
||||
# assignment in conditions are useful sometimes
|
||||
Lint/AssignmentInCondition:
|
||||
Enabled: false
|
||||
|
||||
Lint/EndAlignment:
|
||||
EnforcedStyleAlignWith: variable
|
||||
|
||||
# so many of these in formulae and can't be autocorrected
|
||||
Lint/ParenthesesAsGroupedExpression:
|
||||
Enabled: false
|
||||
|
||||
# TODO: try to bring down all metrics maximums
|
||||
Metrics/AbcSize:
|
||||
Max: 250
|
||||
|
||||
Metrics/BlockLength:
|
||||
Enabled: false
|
||||
Max: 1250
|
||||
|
||||
Metrics/ClassLength:
|
||||
Enabled: false
|
||||
Max: 1500
|
||||
|
||||
Metrics/CyclomaticComplexity:
|
||||
Enabled: false
|
||||
Max: 75
|
||||
|
||||
Metrics/LineLength:
|
||||
Enabled: false
|
||||
Max: 400
|
||||
|
||||
Metrics/MethodLength:
|
||||
Enabled: false
|
||||
Max: 250
|
||||
|
||||
Metrics/ModuleLength:
|
||||
CountComments: false
|
||||
@ -47,36 +91,19 @@ Metrics/ModuleLength:
|
||||
- '**/bin/**/*'
|
||||
- '**/cmd/**/*'
|
||||
- '**/lib/**/*'
|
||||
- '**/spec/**/*'
|
||||
|
||||
Metrics/PerceivedComplexity:
|
||||
Enabled: false
|
||||
Max: 80
|
||||
|
||||
# favor parens-less DSL-style arguments
|
||||
Lint/AmbiguousOperator:
|
||||
Enabled: false
|
||||
|
||||
Lint/AmbiguousRegexpLiteral:
|
||||
Enabled: false
|
||||
|
||||
Lint/AssignmentInCondition:
|
||||
Enabled: false
|
||||
|
||||
Lint/EndAlignment:
|
||||
EnforcedStyleAlignWith: variable
|
||||
|
||||
Lint/ParenthesesAsGroupedExpression:
|
||||
# makes code less readable for minor performance increases
|
||||
Performance/Caller:
|
||||
Enabled: false
|
||||
|
||||
Style/Alias:
|
||||
EnforcedStyle: prefer_alias
|
||||
|
||||
Style/AlignHash:
|
||||
Enabled: false
|
||||
|
||||
# `system` is a special case and aligns on second argument
|
||||
Style/AlignParameters:
|
||||
Enabled: false
|
||||
Style/AutoResourceCleanup:
|
||||
Enabled: true
|
||||
|
||||
Style/BarePercentLiterals:
|
||||
EnforcedStyle: percent_q
|
||||
@ -84,9 +111,6 @@ Style/BarePercentLiterals:
|
||||
Style/BlockDelimiters:
|
||||
EnforcedStyle: line_count_based
|
||||
|
||||
Style/CaseIndentation:
|
||||
EnforcedStyle: end
|
||||
|
||||
Style/ClassAndModuleChildren:
|
||||
EnforcedStyle: nested
|
||||
|
||||
@ -99,16 +123,22 @@ Style/CommandLiteral:
|
||||
Style/ConditionalAssignment:
|
||||
Enabled: false
|
||||
|
||||
# most of our APIs are internal so don't require docs
|
||||
Style/Documentation:
|
||||
Enabled: false
|
||||
|
||||
Style/EmptyLineBetweenDefs:
|
||||
AllowAdjacentOneLineDefs: true
|
||||
Style/Encoding:
|
||||
Enabled: true
|
||||
|
||||
# dashes in filenames are typical
|
||||
Style/FileName:
|
||||
Regex: !ruby/regexp /^[\w\@\-\+\.]+(\.rb)?$/
|
||||
|
||||
# falsely flags e.g. curl formatting arguments as format strings
|
||||
Style/FormatStringToken:
|
||||
Enabled: false
|
||||
|
||||
# so many of these in formulae and can't be autocorrected
|
||||
Style/GuardClause:
|
||||
Enabled: false
|
||||
|
||||
@ -121,13 +151,6 @@ Style/HashSyntax:
|
||||
- '**/lib/**/*'
|
||||
- '**/spec/**/*'
|
||||
|
||||
# disabled until it respects line length
|
||||
Style/IfUnlessModifier:
|
||||
Enabled: false
|
||||
|
||||
Style/IndentArray:
|
||||
EnforcedStyle: special_inside_parentheses
|
||||
|
||||
# only for numbers >= 1_000_000
|
||||
Style/NumericLiterals:
|
||||
MinDigits: 7
|
||||
@ -160,13 +183,6 @@ Style/RaiseArgs:
|
||||
Style/RegexpLiteral:
|
||||
EnforcedStyle: slashes
|
||||
|
||||
# conflicts with DSL-style path concatenation with `/`
|
||||
Style/SpaceAroundOperators:
|
||||
Enabled: false
|
||||
|
||||
Style/SingleLineBlockParams:
|
||||
Enabled: false
|
||||
|
||||
# not a problem for typical shell users
|
||||
Style/SpecialGlobalVars:
|
||||
Enabled: false
|
||||
@ -179,17 +195,22 @@ Style/StringLiterals:
|
||||
Style/StringLiteralsInInterpolation:
|
||||
EnforcedStyle: double_quotes
|
||||
|
||||
Style/SymbolArray:
|
||||
EnforcedStyle: brackets
|
||||
|
||||
Style/TernaryParentheses:
|
||||
Enabled: false
|
||||
EnforcedStyle: require_parentheses_when_complex
|
||||
|
||||
# makes diffs nicer
|
||||
Style/TrailingCommaInLiteral:
|
||||
EnforcedStyleForMultiline: comma
|
||||
|
||||
Style/TrailingCommaInArguments:
|
||||
EnforcedStyleForMultiline: comma
|
||||
|
||||
# we have too many variables like sha256 where this harms readability
|
||||
Style/VariableNumber:
|
||||
Enabled: false
|
||||
|
||||
Style/WordArray:
|
||||
Enabled: false
|
||||
MinSize: 4
|
||||
|
||||
@ -9,9 +9,8 @@ AllCops:
|
||||
- '**/Casks/**/*'
|
||||
- '**/vendor/**/*'
|
||||
|
||||
Style/BlockDelimiters:
|
||||
Layout/MultilineMethodCallIndentation:
|
||||
Exclude:
|
||||
- '**/cask/spec/**/*'
|
||||
- '**/*_spec.rb'
|
||||
|
||||
# so many of these in formulae but none in here
|
||||
@ -27,16 +26,13 @@ Lint/NestedMethodDefinition:
|
||||
Lint/ParenthesesAsGroupedExpression:
|
||||
Enabled: true
|
||||
|
||||
Metrics/ModuleLength:
|
||||
CountComments: false
|
||||
Exclude:
|
||||
- 'cask/lib/hbc/locations.rb'
|
||||
- 'cask/lib/hbc/macos.rb'
|
||||
- 'cask/lib/hbc/utils.rb'
|
||||
|
||||
Metrics/ParameterLists:
|
||||
CountKeywordArgs: false
|
||||
|
||||
Style/BlockDelimiters:
|
||||
Exclude:
|
||||
- '**/*_spec.rb'
|
||||
|
||||
# so many of these in formulae but none in here
|
||||
Style/GuardClause:
|
||||
Enabled: true
|
||||
|
||||
@ -116,7 +116,6 @@ begin
|
||||
odie "Unknown command: #{cmd}"
|
||||
end
|
||||
end
|
||||
|
||||
rescue UsageError => e
|
||||
require "cmd/help"
|
||||
Homebrew.help cmd, usage_error: e.message
|
||||
|
||||
@ -10,7 +10,7 @@ module Hbc
|
||||
end
|
||||
|
||||
def self.artifact_english_article
|
||||
@artifact_english_article ||= artifact_english_name =~ /^[aeiou]/i ? "an" : "a"
|
||||
@artifact_english_article ||= (artifact_english_name =~ /^[aeiou]/i) ? "an" : "a"
|
||||
end
|
||||
|
||||
def self.artifact_dsl_key
|
||||
@ -43,7 +43,7 @@ module Hbc
|
||||
unless unknown_keys.empty?
|
||||
opoo %Q{Unknown arguments to #{description} -- #{unknown_keys.inspect} (ignored). Running "brew update; brew cleanup; brew cask cleanup" will likely fix it.}
|
||||
end
|
||||
arguments.reject! { |k| !permitted_keys.include?(k) }
|
||||
arguments.select! { |k| permitted_keys.include?(k) }
|
||||
|
||||
# key warnings
|
||||
override_keys = override_arguments.keys
|
||||
|
||||
@ -197,9 +197,7 @@ module Hbc
|
||||
paths.each do |path|
|
||||
resolved_path = Pathname.new(path)
|
||||
|
||||
if path.start_with?("~")
|
||||
resolved_path = resolved_path.expand_path
|
||||
end
|
||||
resolved_path = resolved_path.expand_path if path.start_with?("~")
|
||||
|
||||
if resolved_path.relative? || resolved_path.split.any? { |part| part.to_s == ".." }
|
||||
opoo "Skipping #{Formatter.identifier(action)} for relative path '#{path}'."
|
||||
|
||||
@ -66,7 +66,7 @@ module Hbc
|
||||
return [] if current == version
|
||||
|
||||
# collect all installed versions that are different than tap version and return them
|
||||
installed.select { |v| v != version }
|
||||
installed.reject { |v| v == version }
|
||||
end
|
||||
|
||||
def to_s
|
||||
|
||||
@ -54,7 +54,7 @@ module Hbc
|
||||
|
||||
class FromURILoader < FromPathLoader
|
||||
def self.can_load?(ref)
|
||||
!(ref.to_s !~ ::URI.regexp)
|
||||
ref.to_s =~ ::URI.regexp
|
||||
end
|
||||
|
||||
def initialize(url)
|
||||
@ -80,7 +80,7 @@ module Hbc
|
||||
|
||||
class FromTapLoader < FromPathLoader
|
||||
def self.can_load?(ref)
|
||||
!(ref.to_s !~ HOMEBREW_TAP_CASK_REGEX)
|
||||
ref.to_s =~ HOMEBREW_TAP_CASK_REGEX
|
||||
end
|
||||
|
||||
def initialize(tapped_name)
|
||||
|
||||
@ -140,9 +140,7 @@ module Hbc
|
||||
command_name, *args = *@args
|
||||
command = help? ? "help" : self.class.lookup_command(command_name)
|
||||
|
||||
unless ENV["MACOS_VERSION"].nil?
|
||||
MacOS.full_version = ENV["MACOS_VERSION"]
|
||||
end
|
||||
MacOS.full_version = ENV["MACOS_VERSION"] unless ENV["MACOS_VERSION"].nil?
|
||||
|
||||
Hbc.default_tap.install unless Hbc.default_tap.installed?
|
||||
Hbc.init if self.class.should_init?(command)
|
||||
|
||||
@ -15,7 +15,7 @@ module Hbc
|
||||
end
|
||||
|
||||
def self.abstract?
|
||||
!(name.split("::").last !~ /^Abstract[^a-z]/)
|
||||
name.split("::").last =~ /^Abstract[^a-z]/
|
||||
end
|
||||
|
||||
def self.visible
|
||||
|
||||
@ -17,17 +17,17 @@ module Hbc
|
||||
ohai "Contents of $LOAD_PATH", self.class.render_load_path($LOAD_PATH)
|
||||
ohai "Environment Variables"
|
||||
|
||||
environment_variables = [
|
||||
"RUBYLIB",
|
||||
"RUBYOPT",
|
||||
"RUBYPATH",
|
||||
"RBENV_VERSION",
|
||||
"CHRUBY_VERSION",
|
||||
"GEM_HOME",
|
||||
"GEM_PATH",
|
||||
"BUNDLE_PATH",
|
||||
"PATH",
|
||||
"SHELL",
|
||||
environment_variables = %w[
|
||||
RUBYLIB
|
||||
RUBYOPT
|
||||
RUBYPATH
|
||||
RBENV_VERSION
|
||||
CHRUBY_VERSION
|
||||
GEM_HOME
|
||||
GEM_PATH
|
||||
BUNDLE_PATH
|
||||
PATH
|
||||
SHELL
|
||||
]
|
||||
|
||||
(self.class.locale_variables + environment_variables).sort.each(&self.class.method(:render_env_var))
|
||||
|
||||
@ -49,7 +49,7 @@ module Hbc
|
||||
end
|
||||
|
||||
def self.name_info(cask)
|
||||
ohai cask.name.size > 1 ? "Names" : "Name"
|
||||
ohai((cask.name.size > 1) ? "Names" : "Name")
|
||||
puts cask.name.empty? ? Formatter.error("None") : cask.name
|
||||
end
|
||||
|
||||
@ -69,7 +69,7 @@ module Hbc
|
||||
DSL::ORDINARY_ARTIFACT_TYPES.each do |type|
|
||||
next if cask.artifacts[type].empty?
|
||||
cask.artifacts[type].each do |artifact|
|
||||
activatable_item = type == :stage_only ? "<none>" : artifact.first
|
||||
activatable_item = (type == :stage_only) ? "<none>" : artifact.first
|
||||
puts "#{activatable_item} (#{type})"
|
||||
end
|
||||
end
|
||||
|
||||
@ -43,7 +43,7 @@ module Hbc
|
||||
if checkpoint.nil?
|
||||
onoe "Could not retrieve `appcast` checkpoint for cask '#{cask}': #{result[:command_result].stderr}"
|
||||
else
|
||||
puts cask_tokens.count > 1 ? "#{checkpoint} #{cask}": checkpoint
|
||||
puts((cask_tokens.count > 1) ? "#{checkpoint} #{cask}": checkpoint)
|
||||
count += 1
|
||||
end
|
||||
end
|
||||
|
||||
@ -12,7 +12,7 @@ module Hbc
|
||||
def run
|
||||
retval = args.any? ? list : list_installed
|
||||
# retval is ternary: true/false/nil
|
||||
if retval.nil? && !args.any?
|
||||
if retval.nil? && args.none?
|
||||
opoo "nothing to list" # special case: avoid exit code
|
||||
elsif retval.nil?
|
||||
raise CaskError, "nothing to list"
|
||||
|
||||
@ -11,7 +11,8 @@ module Hbc
|
||||
|
||||
def run
|
||||
install_rubocop
|
||||
system({ "XDG_CACHE_HOME" => HOMEBREW_CACHE }, "rubocop", *rubocop_args, "--", *cask_paths)
|
||||
cache_env = { "XDG_CACHE_HOME" => "#{HOMEBREW_CACHE}/style" }
|
||||
system(cache_env, "rubocop", *rubocop_args, "--", *cask_paths)
|
||||
raise CaskError, "style check failed" unless $CHILD_STATUS.success?
|
||||
true
|
||||
end
|
||||
|
||||
@ -86,7 +86,7 @@ module Hbc
|
||||
Dir.chdir(mount) do
|
||||
Dir.glob("**/*", File::FNM_DOTMATCH).map do |path|
|
||||
next if skip_path?(Pathname(path))
|
||||
path == "." ? path : path.prepend("./")
|
||||
(path == ".") ? path : path.prepend("./")
|
||||
end.compact.join("\n").concat("\n")
|
||||
end
|
||||
end
|
||||
|
||||
@ -212,7 +212,7 @@ module Hbc
|
||||
class SubversionDownloadStrategy < HbVCSDownloadStrategy
|
||||
def cache_tag
|
||||
# TODO: pass versions as symbols, support :head here
|
||||
version == "head" ? "svn-HEAD" : "svn"
|
||||
(version == "head") ? "svn-HEAD" : "svn"
|
||||
end
|
||||
|
||||
def repo_valid?
|
||||
|
||||
@ -119,9 +119,7 @@ module Hbc
|
||||
def language_eval
|
||||
return @language if instance_variable_defined?(:@language)
|
||||
|
||||
if @language_blocks.nil? || @language_blocks.empty?
|
||||
return @language = nil
|
||||
end
|
||||
return @language = nil if @language_blocks.nil? || @language_blocks.empty?
|
||||
|
||||
MacOS.languages.map(&Locale.method(:parse)).each do |locale|
|
||||
key = @language_blocks.keys.detect do |strings|
|
||||
|
||||
@ -113,7 +113,7 @@ module Hbc
|
||||
end
|
||||
|
||||
def to_s
|
||||
"Cask '#{token}' definition is invalid" + (!submsg.empty? ? ": #{submsg}" : "")
|
||||
"Cask '#{token}' definition is invalid#{": #{submsg}" unless submsg.empty?}"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@ -94,7 +94,7 @@ module Hbc
|
||||
loop do
|
||||
readable_sources = IO.select(sources)[0]
|
||||
readable_sources.delete_if(&:eof?).first(1).each do |source|
|
||||
type = (source == sources[0] ? :stdout : :stderr)
|
||||
type = ((source == sources[0]) ? :stdout : :stderr)
|
||||
begin
|
||||
yield(type, source.readline_nonblock || "")
|
||||
rescue IO::WaitReadable, EOFError
|
||||
|
||||
@ -38,6 +38,7 @@
|
||||
#: `--include-optional`, and `--skip-recommended` as documented above.
|
||||
|
||||
# encoding: UTF-8
|
||||
|
||||
require "formula"
|
||||
require "ostruct"
|
||||
|
||||
@ -112,10 +113,10 @@ module Homebrew
|
||||
end
|
||||
else
|
||||
deps = f.deps.reject do |dep|
|
||||
ignores.any? { |ignore| dep.send(ignore) } && !includes.any? { |include| dep.send(include) }
|
||||
ignores.any? { |ignore| dep.send(ignore) } && includes.none? { |include| dep.send(include) }
|
||||
end
|
||||
reqs = f.requirements.reject do |req|
|
||||
ignores.any? { |ignore| req.send(ignore) } && !includes.any? { |include| req.send(include) }
|
||||
ignores.any? { |ignore| req.send(ignore) } && includes.none? { |include| req.send(include) }
|
||||
end
|
||||
end
|
||||
|
||||
@ -160,7 +161,7 @@ module Homebrew
|
||||
else
|
||||
"├──"
|
||||
end
|
||||
prefix_ext = i == max ? " " : "│ "
|
||||
prefix_ext = (i == max) ? " " : "│ "
|
||||
puts prefix + "#{chr} #{dep_display_name(dep)}"
|
||||
recursive_deps_tree(Formulary.factory(dep.name), prefix + prefix_ext)
|
||||
end
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
HOMEBREW_HELP = <<-EOS.freeze
|
||||
Example usage:
|
||||
HOMEBREW_HELP = <<-EOS.unindent.freeze
|
||||
Example usage:
|
||||
brew search [TEXT|/REGEX/]
|
||||
brew (info|home|options) [FORMULA...]
|
||||
brew install FORMULA...
|
||||
@ -8,17 +8,17 @@ Example usage:
|
||||
brew uninstall FORMULA...
|
||||
brew list [FORMULA...]
|
||||
|
||||
Troubleshooting:
|
||||
Troubleshooting:
|
||||
brew config
|
||||
brew doctor
|
||||
brew install -vd FORMULA
|
||||
|
||||
Developers:
|
||||
Developers:
|
||||
brew create [URL [--no-fetch]]
|
||||
brew edit [FORMULA...]
|
||||
http://docs.brew.sh/Formula-Cookbook.html
|
||||
|
||||
Further help:
|
||||
Further help:
|
||||
man brew
|
||||
brew help [COMMAND]
|
||||
brew home
|
||||
|
||||
@ -72,9 +72,7 @@ module Homebrew
|
||||
puts "#{n} symlinks created"
|
||||
end
|
||||
|
||||
if keg_only && !ARGV.homebrew_developer?
|
||||
puts_keg_only_path_message(keg)
|
||||
end
|
||||
puts_keg_only_path_message(keg) if keg_only && !ARGV.homebrew_developer?
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -73,7 +73,11 @@ module Homebrew
|
||||
args = %w[
|
||||
--force-exclusion
|
||||
]
|
||||
args << "--auto-correct" if fix
|
||||
if fix
|
||||
args << "--auto-correct"
|
||||
else
|
||||
args << "--parallel"
|
||||
end
|
||||
|
||||
if options[:except_cops]
|
||||
options[:except_cops].map! { |cop| RuboCop::Cop::Cop.registry.qualified_cop_name(cop.to_s, "") }
|
||||
@ -101,14 +105,16 @@ module Homebrew
|
||||
args += files
|
||||
end
|
||||
|
||||
cache_env = { "XDG_CACHE_HOME" => "#{HOMEBREW_CACHE}/style" }
|
||||
|
||||
case output_type
|
||||
when :print
|
||||
args << "--display-cop-names" if ARGV.include? "--display-cop-names"
|
||||
args << "--format" << "simple" if files
|
||||
system({ "XDG_CACHE_HOME" => HOMEBREW_CACHE }, "rubocop", *args)
|
||||
system(cache_env, "rubocop", *args)
|
||||
!$?.success?
|
||||
when :json
|
||||
json, _, status = Open3.capture3({ "XDG_CACHE_HOME" => HOMEBREW_CACHE }, "rubocop", "--format", "json", *args)
|
||||
json, _, status = Open3.capture3(cache_env, "rubocop", "--format", "json", *args)
|
||||
# exit status of 1 just means violations were found; other numbers mean
|
||||
# execution errors.
|
||||
# exitstatus can also be nil if RuboCop process crashes, e.g. due to
|
||||
|
||||
@ -98,10 +98,10 @@ module Homebrew
|
||||
reqs = reqs_by_formula.map(&:last)
|
||||
else
|
||||
deps = f.deps.reject do |dep|
|
||||
ignores.any? { |ignore| dep.send(ignore) } && !includes.any? { |include| dep.send(include) }
|
||||
ignores.any? { |ignore| dep.send(ignore) } && includes.none? { |include| dep.send(include) }
|
||||
end
|
||||
reqs = f.requirements.reject do |req|
|
||||
ignores.any? { |ignore| req.send(ignore) } && !includes.any? { |include| req.send(include) }
|
||||
ignores.any? { |ignore| req.send(ignore) } && includes.none? { |include| req.send(include) }
|
||||
end
|
||||
end
|
||||
next true if deps.any? do |dep|
|
||||
|
||||
@ -19,5 +19,5 @@ end
|
||||
|
||||
def plural(n, s = "s")
|
||||
odeprecated "#plural", "Formatter.pluralize"
|
||||
n == 1 ? "" : s
|
||||
(n == 1) ? "" : s
|
||||
end
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
# RuboCop version used for `brew style` and `brew cask style`
|
||||
HOMEBREW_RUBOCOP_VERSION = "0.47.1".freeze
|
||||
HOMEBREW_RUBOCOP_CASK_VERSION = "~> 0.12.0".freeze # has to be updated when RuboCop version changes
|
||||
HOMEBREW_RUBOCOP_VERSION = "0.49.1".freeze
|
||||
HOMEBREW_RUBOCOP_CASK_VERSION = "~> 0.13.0".freeze # has to be updated when RuboCop version changes
|
||||
|
||||
@ -16,7 +16,7 @@ class CxxStdlib
|
||||
if type && ![:libstdcxx, :libcxx].include?(type)
|
||||
raise ArgumentError, "Invalid C++ stdlib type: #{type}"
|
||||
end
|
||||
klass = compiler.to_s =~ GNU_GCC_REGEXP ? GnuStdlib : AppleStdlib
|
||||
klass = (compiler.to_s =~ GNU_GCC_REGEXP) ? GnuStdlib : AppleStdlib
|
||||
klass.new(type, compiler)
|
||||
end
|
||||
|
||||
|
||||
@ -121,7 +121,7 @@ class Descriptions
|
||||
blank = Formatter.warning("[no description]")
|
||||
@descriptions.keys.sort.each do |full_name|
|
||||
short_name = short_names[full_name]
|
||||
printed_name = short_name_counts[short_name] == 1 ? short_name : full_name
|
||||
printed_name = (short_name_counts[short_name] == 1) ? short_name : full_name
|
||||
description = @descriptions[full_name] || blank
|
||||
puts "#{Tty.bold}#{printed_name}:#{Tty.reset} #{description}"
|
||||
end
|
||||
|
||||
@ -591,9 +591,7 @@ class FormulaAuditor
|
||||
def audit_homepage
|
||||
homepage = formula.homepage
|
||||
|
||||
if homepage.nil? || homepage.empty?
|
||||
return
|
||||
end
|
||||
return if homepage.nil? || homepage.empty?
|
||||
|
||||
return unless @online
|
||||
|
||||
@ -988,9 +986,7 @@ class FormulaAuditor
|
||||
problem ":apr is deprecated. Usage should be \"apr-util\""
|
||||
end
|
||||
|
||||
if line =~ /depends_on :tex/
|
||||
problem ":tex is deprecated"
|
||||
end
|
||||
problem ":tex is deprecated" if line =~ /depends_on :tex/
|
||||
|
||||
if line =~ /depends_on\s+['"](.+)['"]\s+=>\s+:(lua|perl|python|ruby)(\d*)/
|
||||
problem "#{$2} modules should be vendored rather than use deprecated `depends_on \"#{$1}\" => :#{$2}#{$3}`"
|
||||
|
||||
@ -314,8 +314,8 @@ module Homebrew
|
||||
|
||||
old_spec = f.bottle_specification
|
||||
if ARGV.include?("--keep-old") && !old_spec.checksums.empty?
|
||||
mismatches = [:root_url, :prefix, :cellar, :rebuild].select do |key|
|
||||
old_spec.send(key) != bottle.send(key)
|
||||
mismatches = [:root_url, :prefix, :cellar, :rebuild].reject do |key|
|
||||
old_spec.send(key) == bottle.send(key)
|
||||
end
|
||||
mismatches.delete(:cellar) if old_spec.cellar == :any && bottle.cellar == :any_skip_relocation
|
||||
unless mismatches.empty?
|
||||
@ -382,9 +382,7 @@ module Homebrew
|
||||
bottle = BottleSpecification.new
|
||||
bottle.root_url bottle_hash["bottle"]["root_url"]
|
||||
cellar = bottle_hash["bottle"]["cellar"]
|
||||
if cellar == "any" || cellar == "any_skip_relocation"
|
||||
cellar = cellar.to_sym
|
||||
end
|
||||
cellar = cellar.to_sym if ["any", "any_skip_relocation"].include?(cellar)
|
||||
bottle.cellar cellar
|
||||
bottle.prefix bottle_hash["bottle"]["prefix"]
|
||||
bottle.rebuild bottle_hash["bottle"]["rebuild"]
|
||||
|
||||
@ -21,7 +21,7 @@ module Homebrew
|
||||
# If no brews are listed, open the project root in an editor.
|
||||
if ARGV.named.empty?
|
||||
editor = File.basename which_editor
|
||||
if editor == "mate" || editor == "subl"
|
||||
if ["mate", "subl"].include?(editor)
|
||||
# If the user is using TextMate or Sublime Text,
|
||||
# give a nice project view instead.
|
||||
exec_editor HOMEBREW_REPOSITORY+"bin/brew",
|
||||
|
||||
@ -60,9 +60,7 @@ module Homebrew
|
||||
end
|
||||
|
||||
Homebrew.install_gem_setup_path! "bundler"
|
||||
unless quiet_system("bundle", "check")
|
||||
system "bundle", "install"
|
||||
end
|
||||
system "bundle", "install" unless quiet_system("bundle", "check")
|
||||
|
||||
parallel = true
|
||||
|
||||
@ -91,12 +89,12 @@ module Homebrew
|
||||
end
|
||||
|
||||
args = ["-I", HOMEBREW_LIBRARY_PATH/"test"]
|
||||
args += %w[
|
||||
args += %W[
|
||||
--color
|
||||
--require spec_helper
|
||||
--format progress
|
||||
--format ParallelTests::RSpec::RuntimeLogger
|
||||
--out tmp/parallel_runtime_rspec.log
|
||||
--out #{HOMEBREW_CACHE}/tests/parallel_runtime_rspec.log
|
||||
]
|
||||
|
||||
args << "--seed" << ARGV.next if ARGV.include? "--seed"
|
||||
|
||||
@ -2,6 +2,7 @@ class String
|
||||
def undent
|
||||
gsub(/^[ \t]{#{(slice(/^[ \t]+/) || '').length}}/, "")
|
||||
end
|
||||
alias unindent undent
|
||||
|
||||
# eg:
|
||||
# if foo then <<-EOS.undent_________________________________________________________72
|
||||
|
||||
@ -61,9 +61,9 @@ module FormulaCellarChecks
|
||||
|
||||
valid_extensions = %w[.a .dylib .framework .jnilib .la .o .so
|
||||
.jar .prl .pm .sh]
|
||||
non_libraries = formula.lib.children.select do |g|
|
||||
non_libraries = formula.lib.children.reject do |g|
|
||||
next if g.directory?
|
||||
!valid_extensions.include? g.extname
|
||||
valid_extensions.include? g.extname
|
||||
end
|
||||
return if non_libraries.empty?
|
||||
|
||||
|
||||
@ -472,7 +472,7 @@ class FormulaInstaller
|
||||
|
||||
def effective_build_options_for(dependent, inherited_options = [])
|
||||
args = dependent.build.used_options
|
||||
args |= dependent == formula ? options : inherited_options
|
||||
args |= (dependent == formula) ? options : inherited_options
|
||||
args |= Tab.for_formula(dependent).used_options
|
||||
args &= dependent.options
|
||||
BuildOptions.new(args, dependent.options)
|
||||
@ -680,7 +680,6 @@ class FormulaInstaller
|
||||
if !formula.prefix.directory? || Keg.new(formula.prefix).empty_installation?
|
||||
raise "Empty installation"
|
||||
end
|
||||
|
||||
rescue Exception
|
||||
ignore_interrupts do
|
||||
# any exceptions must leave us with nothing installed
|
||||
|
||||
@ -367,7 +367,7 @@ class Keg
|
||||
dep_formula = Formulary.factory(dep["full_name"])
|
||||
dep_formula == to_formula
|
||||
rescue FormulaUnavailableError
|
||||
next "#{tap}/#{name}" == dep["full_name"]
|
||||
next dep["full_name"] == "#{tap}/#{name}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -47,7 +47,7 @@ module Language
|
||||
def cabal_install(*args)
|
||||
# cabal hardcodes 64 as the maximum number of parallel jobs
|
||||
# https://github.com/Homebrew/legacy-homebrew/issues/49509
|
||||
make_jobs = ENV.make_jobs > 64 ? 64 : ENV.make_jobs
|
||||
make_jobs = (ENV.make_jobs > 64) ? 64 : ENV.make_jobs
|
||||
|
||||
# cabal-install's dependency-resolution backtracking strategy can easily
|
||||
# need more than the default 2,000 maximum number of "backjumps," since
|
||||
|
||||
@ -90,7 +90,7 @@ module OS
|
||||
@locator ||= SDKLocator.new
|
||||
begin
|
||||
sdk = if v.nil?
|
||||
Xcode.version.to_i >= 7 ? @locator.latest_sdk : @locator.sdk_for(version)
|
||||
(Xcode.version.to_i >= 7) ? @locator.latest_sdk : @locator.sdk_for(version)
|
||||
else
|
||||
@locator.sdk_for v
|
||||
end
|
||||
|
||||
@ -62,10 +62,10 @@ class LinkageChecker
|
||||
declared_deps = formula.deps.reject { |dep| filter_out.call(dep) }.map(&:name)
|
||||
declared_requirement_deps = formula.requirements.reject { |req| filter_out.call(req) }.map(&:default_formula).compact
|
||||
declared_dep_names = (declared_deps + declared_requirement_deps).map { |dep| dep.split("/").last }
|
||||
undeclared_deps = @brewed_dylibs.keys.select do |full_name|
|
||||
undeclared_deps = @brewed_dylibs.keys.reject do |full_name|
|
||||
name = full_name.split("/").last
|
||||
next false if name == formula.name
|
||||
!declared_dep_names.include?(name)
|
||||
next true if name == formula.name
|
||||
declared_dep_names.include?(name)
|
||||
end
|
||||
undeclared_deps.sort do |a, b|
|
||||
if a.include?("/") && !b.include?("/")
|
||||
|
||||
@ -96,7 +96,7 @@ module RuboCop
|
||||
else
|
||||
indentation = " " * (start_column(node2) - line_start_column(node2))
|
||||
# No line breaks upto version_scheme, order_idx == 8
|
||||
line_breaks = order_idx>8 ? "\n\n" : "\n"
|
||||
line_breaks = (order_idx>8) ? "\n\n" : "\n"
|
||||
corrector.insert_before(node2.source_range, node1.source+line_breaks+indentation)
|
||||
end
|
||||
corrector.remove(range_with_surrounding_space(node1.source_range, :left))
|
||||
|
||||
@ -176,7 +176,7 @@ class Sandbox
|
||||
|
||||
def add_rule(rule)
|
||||
s = "("
|
||||
s << (rule[:allow] ? "allow": "deny")
|
||||
s << ((rule[:allow]) ? "allow": "deny")
|
||||
s << " #{rule[:operation]}"
|
||||
s << " (#{rule[:filter]})" if rule[:filter]
|
||||
s << " (with #{rule[:modifier]})" if rule[:modifier]
|
||||
|
||||
@ -235,7 +235,7 @@ class Bottle
|
||||
end
|
||||
|
||||
def suffix
|
||||
s = rebuild > 0 ? ".#{rebuild}" : ""
|
||||
s = (rebuild > 0) ? ".#{rebuild}" : ""
|
||||
".bottle#{s}.tar.gz"
|
||||
end
|
||||
end
|
||||
|
||||
@ -2,11 +2,11 @@ source "https://rubygems.org"
|
||||
|
||||
gem "parallel_tests"
|
||||
gem "rspec"
|
||||
gem "rubocop"
|
||||
gem "rspec-its", require: false
|
||||
gem "rspec-wait", require: false
|
||||
gem "rubocop"
|
||||
|
||||
group :coverage do
|
||||
gem "simplecov", require: false
|
||||
gem "codecov", require: false
|
||||
gem "simplecov", require: false
|
||||
end
|
||||
|
||||
@ -36,7 +36,8 @@ GEM
|
||||
rspec-support (3.6.0)
|
||||
rspec-wait (0.0.9)
|
||||
rspec (>= 3, < 4)
|
||||
rubocop (0.48.1)
|
||||
rubocop (0.49.1)
|
||||
parallel (~> 1.10)
|
||||
parser (>= 2.3.3.1, < 3.0)
|
||||
powerpack (~> 0.1)
|
||||
rainbow (>= 1.99.1, < 3.0)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
describe "download strategies", :cask do
|
||||
let(:url) { "http://example.com/cask.dmg" }
|
||||
let(:url_options) { Hash.new }
|
||||
let(:url_options) { {} }
|
||||
let(:cask) {
|
||||
instance_double(Hbc::Cask, token: "some-cask",
|
||||
url: Hbc::URL.new(url, url_options),
|
||||
|
||||
@ -4,11 +4,11 @@ require "utils/tty"
|
||||
describe Formatter do
|
||||
describe "::columns" do
|
||||
let(:input) {
|
||||
[
|
||||
"aa",
|
||||
"bbb",
|
||||
"ccc",
|
||||
"dd",
|
||||
%w[
|
||||
aa
|
||||
bbb
|
||||
ccc
|
||||
dd
|
||||
]
|
||||
}
|
||||
subject { described_class.columns(input) }
|
||||
|
||||
@ -683,7 +683,7 @@ describe Formula do
|
||||
end
|
||||
|
||||
expect(f5.deps.map(&:name)).to eq(["f3", "f4"])
|
||||
expect(f5.recursive_dependencies.map(&:name)).to eq(["f1", "f2", "f3", "f4"])
|
||||
expect(f5.recursive_dependencies.map(&:name)).to eq(%w[f1 f2 f3 f4])
|
||||
expect(f5.runtime_dependencies.map(&:name)).to eq(["f1", "f4"])
|
||||
end
|
||||
|
||||
|
||||
@ -44,9 +44,7 @@ describe Migrator do
|
||||
end
|
||||
|
||||
after(:each) do
|
||||
if !old_keg_record.parent.symlink? && old_keg_record.directory?
|
||||
keg.unlink
|
||||
end
|
||||
keg.unlink if !old_keg_record.parent.symlink? && old_keg_record.directory?
|
||||
|
||||
if new_keg_record.directory?
|
||||
new_keg = Keg.new(new_keg_record)
|
||||
|
||||
@ -104,7 +104,7 @@ describe Pathname do
|
||||
end
|
||||
|
||||
it "preserves permissions" do
|
||||
File.open(file, "w", 0100777).close
|
||||
File.open(file, "w", 0100777) {}
|
||||
file.atomic_write("CONTENT")
|
||||
expect(file.stat.mode).to eq(0100777 & ~File.umask)
|
||||
end
|
||||
|
||||
@ -3,9 +3,9 @@ require "extend/string"
|
||||
describe String do
|
||||
describe "#undent" do
|
||||
it "removes leading whitespace, taking the first line as reference" do
|
||||
string = <<-EOS.undent
|
||||
string = <<-EOS.unindent
|
||||
hi
|
||||
........my friend over
|
||||
........my friend over
|
||||
there
|
||||
EOS
|
||||
|
||||
@ -13,9 +13,9 @@ describe String do
|
||||
end
|
||||
|
||||
it "removes nothing if the text is not indented" do
|
||||
string = <<-EOS.undent
|
||||
hi
|
||||
I'm not indented
|
||||
string = <<-EOS.unindent
|
||||
hi
|
||||
I'm not indented
|
||||
EOS
|
||||
|
||||
expect(string).to eq("hi\nI'm not indented\n")
|
||||
|
||||
@ -280,7 +280,7 @@ class Version
|
||||
private
|
||||
|
||||
def max(a, b)
|
||||
a > b ? a : b
|
||||
(a > b) ? a : b
|
||||
end
|
||||
|
||||
def tokenize
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user