Merge pull request #3183 from MikeMcQuaid/rubocop-upgrade
Rubocop: 0.50.0 and Ruby 2.3
This commit is contained in:
commit
a589303616
@ -1,5 +1,5 @@
|
|||||||
AllCops:
|
AllCops:
|
||||||
TargetRubyVersion: 2.0
|
TargetRubyVersion: 2.3
|
||||||
Exclude:
|
Exclude:
|
||||||
- '**/Casks/**/*'
|
- '**/Casks/**/*'
|
||||||
- '**/vendor/**/*'
|
- '**/vendor/**/*'
|
||||||
@ -119,7 +119,7 @@ Style/Encoding:
|
|||||||
Enabled: true
|
Enabled: true
|
||||||
|
|
||||||
# dashes in filenames are typical
|
# dashes in filenames are typical
|
||||||
Style/FileName:
|
Naming/FileName:
|
||||||
Regex: !ruby/regexp /^[\w\@\-\+\.]+(\.rb)?$/
|
Regex: !ruby/regexp /^[\w\@\-\+\.]+(\.rb)?$/
|
||||||
|
|
||||||
# falsely flags e.g. curl formatting arguments as format strings
|
# falsely flags e.g. curl formatting arguments as format strings
|
||||||
@ -189,8 +189,25 @@ Style/TrailingCommaInArguments:
|
|||||||
EnforcedStyleForMultiline: comma
|
EnforcedStyleForMultiline: comma
|
||||||
|
|
||||||
# we have too many variables like sha256 where this harms readability
|
# we have too many variables like sha256 where this harms readability
|
||||||
Style/VariableNumber:
|
Naming/VariableNumber:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
Style/WordArray:
|
Style/WordArray:
|
||||||
MinSize: 4
|
MinSize: 4
|
||||||
|
|
||||||
|
# we want to add this slowly and manually
|
||||||
|
Style/FrozenStringLiteralComment:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
# generally rescuing StandardError is fine
|
||||||
|
Lint/RescueWithoutErrorClass:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
# implicitly allow EOS as we use it everywhere
|
||||||
|
Naming/HeredocDelimiterNaming:
|
||||||
|
Blacklist:
|
||||||
|
- END, EOD, EOF
|
||||||
|
|
||||||
|
# we output how to use interpolated strings too often
|
||||||
|
Lint/InterpolationCheck:
|
||||||
|
Enabled: false
|
||||||
|
|||||||
@ -42,12 +42,12 @@ Style/HashSyntax:
|
|||||||
EnforcedStyle: ruby19_no_mixed_keys
|
EnforcedStyle: ruby19_no_mixed_keys
|
||||||
|
|
||||||
# we won't change backward compatible method names
|
# we won't change backward compatible method names
|
||||||
Style/MethodName:
|
Naming/MethodName:
|
||||||
Exclude:
|
Exclude:
|
||||||
- 'compat/**/*'
|
- 'compat/**/*'
|
||||||
|
|
||||||
# we won't change backward compatible predicate names
|
# we won't change backward compatible predicate names
|
||||||
Style/PredicateName:
|
Naming/PredicateName:
|
||||||
Exclude:
|
Exclude:
|
||||||
- 'compat/**/*'
|
- 'compat/**/*'
|
||||||
NameWhitelist: is_32_bit?, is_64_bit?
|
NameWhitelist: is_32_bit?, is_64_bit?
|
||||||
|
|||||||
@ -81,7 +81,7 @@ Security/MarshalLoad:
|
|||||||
- 'utils/fork.rb'
|
- 'utils/fork.rb'
|
||||||
|
|
||||||
# Offense count: 1
|
# Offense count: 1
|
||||||
Style/AccessorMethodName:
|
Naming/AccessorMethodName:
|
||||||
Exclude:
|
Exclude:
|
||||||
- 'extend/ENV/super.rb'
|
- 'extend/ENV/super.rb'
|
||||||
|
|
||||||
@ -136,10 +136,3 @@ Style/MutableConstant:
|
|||||||
- 'formulary.rb'
|
- 'formulary.rb'
|
||||||
- 'tab.rb'
|
- 'tab.rb'
|
||||||
- 'tap.rb'
|
- 'tap.rb'
|
||||||
|
|
||||||
# Offense count: 8
|
|
||||||
Style/OpMethod:
|
|
||||||
Exclude:
|
|
||||||
- 'dependencies.rb'
|
|
||||||
- 'install_renamed.rb'
|
|
||||||
- 'options.rb'
|
|
||||||
|
|||||||
@ -105,18 +105,16 @@ begin
|
|||||||
possible_tap = OFFICIAL_CMD_TAPS.find { |_, cmds| cmds.include?(cmd) }
|
possible_tap = OFFICIAL_CMD_TAPS.find { |_, cmds| cmds.include?(cmd) }
|
||||||
possible_tap = Tap.fetch(possible_tap.first) if possible_tap
|
possible_tap = Tap.fetch(possible_tap.first) if possible_tap
|
||||||
|
|
||||||
if possible_tap && !possible_tap.installed?
|
odie "Unknown command: #{cmd}" if !possible_tap || possible_tap.installed?
|
||||||
brew_uid = HOMEBREW_BREW_FILE.stat.uid
|
|
||||||
tap_commands = []
|
brew_uid = HOMEBREW_BREW_FILE.stat.uid
|
||||||
if Process.uid.zero? && !brew_uid.zero?
|
tap_commands = []
|
||||||
tap_commands += %W[/usr/bin/sudo -u ##{brew_uid}]
|
if Process.uid.zero? && !brew_uid.zero?
|
||||||
end
|
tap_commands += %W[/usr/bin/sudo -u ##{brew_uid}]
|
||||||
tap_commands += %W[#{HOMEBREW_BREW_FILE} tap #{possible_tap}]
|
|
||||||
safe_system(*tap_commands)
|
|
||||||
exec HOMEBREW_BREW_FILE, cmd, *ARGV
|
|
||||||
else
|
|
||||||
odie "Unknown command: #{cmd}"
|
|
||||||
end
|
end
|
||||||
|
tap_commands += %W[#{HOMEBREW_BREW_FILE} tap #{possible_tap}]
|
||||||
|
safe_system(*tap_commands)
|
||||||
|
exec HOMEBREW_BREW_FILE, cmd, *ARGV
|
||||||
end
|
end
|
||||||
rescue UsageError => e
|
rescue UsageError => e
|
||||||
require "cmd/help"
|
require "cmd/help"
|
||||||
|
|||||||
@ -56,7 +56,7 @@ module Hbc
|
|||||||
|
|
||||||
class FromURILoader < FromPathLoader
|
class FromURILoader < FromPathLoader
|
||||||
def self.can_load?(ref)
|
def self.can_load?(ref)
|
||||||
ref.to_s.match?(::URI.regexp)
|
ref.to_s.match?(::URI::DEFAULT_PARSER.make_regexp)
|
||||||
end
|
end
|
||||||
|
|
||||||
attr_reader :url
|
attr_reader :url
|
||||||
|
|||||||
@ -16,7 +16,7 @@ module Hbc
|
|||||||
|
|
||||||
def target_file
|
def target_file
|
||||||
return @path.basename if @nested
|
return @path.basename if @nested
|
||||||
URI.decode(File.basename(@cask.url.path))
|
CGI.unescape(File.basename(@cask.url.path))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -161,7 +161,7 @@ module Hbc
|
|||||||
begin
|
begin
|
||||||
DSL::Container.new(*args).tap do |container|
|
DSL::Container.new(*args).tap do |container|
|
||||||
# TODO: remove this backward-compatibility section after removing nested_container
|
# TODO: remove this backward-compatibility section after removing nested_container
|
||||||
if container && container.nested
|
if container&.nested
|
||||||
artifacts[:nested_container] << Artifact::NestedContainer.new(cask, container.nested)
|
artifacts[:nested_container] << Artifact::NestedContainer.new(cask, container.nested)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -49,7 +49,7 @@ module Hbc
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
DIVIDERS.keys.each do |divider|
|
DIVIDERS.each_key do |divider|
|
||||||
define_divider_methods(divider)
|
define_divider_methods(divider)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -159,7 +159,7 @@ module Hbc
|
|||||||
odebug "Extracting primary container"
|
odebug "Extracting primary container"
|
||||||
|
|
||||||
FileUtils.mkdir_p @cask.staged_path
|
FileUtils.mkdir_p @cask.staged_path
|
||||||
container = if @cask.container && @cask.container.type
|
container = if @cask.container&.type
|
||||||
Container.from_type(@cask.container.type)
|
Container.from_type(@cask.container.type)
|
||||||
else
|
else
|
||||||
Container.for_path(@downloaded_path, @command)
|
Container.for_path(@downloaded_path, @command)
|
||||||
@ -361,7 +361,7 @@ module Hbc
|
|||||||
|
|
||||||
savedir = @cask.metadata_subdir("Casks", timestamp: :now, create: true)
|
savedir = @cask.metadata_subdir("Casks", timestamp: :now, create: true)
|
||||||
FileUtils.copy @cask.sourcefile_path, savedir
|
FileUtils.copy @cask.sourcefile_path, savedir
|
||||||
old_savedir.rmtree unless old_savedir.nil?
|
old_savedir&.rmtree
|
||||||
end
|
end
|
||||||
|
|
||||||
def uninstall
|
def uninstall
|
||||||
|
|||||||
@ -61,7 +61,7 @@ module Hbc
|
|||||||
end
|
end
|
||||||
|
|
||||||
def assert_success
|
def assert_success
|
||||||
return if processed_status && processed_status.success?
|
return if processed_status&.success?
|
||||||
raise CaskCommandFailedError.new(command, processed_output[:stdout], processed_output[:stderr], processed_status)
|
raise CaskCommandFailedError.new(command, processed_output[:stdout], processed_output[:stderr], processed_status)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -163,7 +163,7 @@ class Caveats
|
|||||||
|
|
||||||
def plist_caveats
|
def plist_caveats
|
||||||
s = []
|
s = []
|
||||||
if f.plist || (keg && keg.plist_installed?)
|
if f.plist || (keg&.plist_installed?)
|
||||||
plist_domain = f.plist_path.basename(".plist")
|
plist_domain = f.plist_path.basename(".plist")
|
||||||
|
|
||||||
# we readlink because this path probably doesn't exist since caveats
|
# we readlink because this path probably doesn't exist since caveats
|
||||||
|
|||||||
@ -55,7 +55,7 @@ module Homebrew
|
|||||||
else
|
else
|
||||||
n, d = ObserverPathnameExtension.counts
|
n, d = ObserverPathnameExtension.counts
|
||||||
print "Pruned #{n} symbolic links "
|
print "Pruned #{n} symbolic links "
|
||||||
print "and #{d} directories " if d > 0
|
print "and #{d} directories " if d.positive?
|
||||||
puts "from #{HOMEBREW_PREFIX}"
|
puts "from #{HOMEBREW_PREFIX}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -67,7 +67,7 @@ module Homebrew
|
|||||||
|
|
||||||
ohai "Searching blacklisted, migrated and deleted formulae..."
|
ohai "Searching blacklisted, migrated and deleted formulae..."
|
||||||
if reason = Homebrew::MissingFormula.reason(query, silent: true)
|
if reason = Homebrew::MissingFormula.reason(query, silent: true)
|
||||||
if count > 0
|
if count.positive?
|
||||||
puts
|
puts
|
||||||
puts "If you meant #{query.inspect} specifically:"
|
puts "If you meant #{query.inspect} specifically:"
|
||||||
end
|
end
|
||||||
|
|||||||
@ -64,10 +64,10 @@ module Homebrew
|
|||||||
if tap.installed?
|
if tap.installed?
|
||||||
info += tap.pinned? ? "pinned" : "unpinned"
|
info += tap.pinned? ? "pinned" : "unpinned"
|
||||||
info += ", private" if tap.private?
|
info += ", private" if tap.private?
|
||||||
if (formula_count = tap.formula_files.size) > 0
|
if (formula_count = tap.formula_files.size).positive?
|
||||||
info += ", #{Formatter.pluralize(formula_count, "formula")}"
|
info += ", #{Formatter.pluralize(formula_count, "formula")}"
|
||||||
end
|
end
|
||||||
if (command_count = tap.command_files.size) > 0
|
if (command_count = tap.command_files.size).positive?
|
||||||
info += ", #{Formatter.pluralize(command_count, "command")}"
|
info += ", #{Formatter.pluralize(command_count, "command")}"
|
||||||
end
|
end
|
||||||
info += ", no formulae/commands" if (formula_count + command_count).zero?
|
info += ", no formulae/commands" if (formula_count + command_count).zero?
|
||||||
|
|||||||
@ -77,7 +77,7 @@ module Homebrew
|
|||||||
def unlinkapps_unlink?(target_app, opts = {})
|
def unlinkapps_unlink?(target_app, opts = {})
|
||||||
# Skip non-symlinks and symlinks that don't point into the Homebrew prefix.
|
# Skip non-symlinks and symlinks that don't point into the Homebrew prefix.
|
||||||
app = target_app.readlink.to_s if target_app.symlink?
|
app = target_app.readlink.to_s if target_app.symlink?
|
||||||
return false unless app && app.start_with?(*UNLINKAPPS_PREFIXES)
|
return false unless app&.start_with?(*UNLINKAPPS_PREFIXES)
|
||||||
|
|
||||||
if opts.fetch(:prune, false)
|
if opts.fetch(:prune, false)
|
||||||
!File.exist?(app) # Remove only broken symlinks in prune mode.
|
!File.exist?(app) # Remove only broken symlinks in prune mode.
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
# RuboCop version used for `brew style` and `brew cask style`
|
# RuboCop version used for `brew style` and `brew cask style`
|
||||||
HOMEBREW_RUBOCOP_VERSION = "0.49.1".freeze
|
HOMEBREW_RUBOCOP_VERSION = "0.50.0"
|
||||||
HOMEBREW_RUBOCOP_CASK_VERSION = "~> 0.13.1".freeze # has to be updated when RuboCop version changes
|
HOMEBREW_RUBOCOP_CASK_VERSION = "~> 0.14.2" # has to be updated when RuboCop version changes
|
||||||
|
|||||||
@ -57,7 +57,7 @@ module Debrew
|
|||||||
input.chomp!
|
input.chomp!
|
||||||
|
|
||||||
i = input.to_i
|
i = input.to_i
|
||||||
if i > 0
|
if i.positive?
|
||||||
choice = menu.entries[i - 1]
|
choice = menu.entries[i - 1]
|
||||||
else
|
else
|
||||||
possible = menu.entries.find_all { |e| e.name.start_with?(input) }
|
possible = menu.entries.find_all { |e| e.name.start_with?(input) }
|
||||||
|
|||||||
@ -16,7 +16,7 @@ module IRB
|
|||||||
workspace = WorkSpace.new(binding)
|
workspace = WorkSpace.new(binding)
|
||||||
irb = Irb.new(workspace)
|
irb = Irb.new(workspace)
|
||||||
|
|
||||||
@CONF[:IRB_RC].call(irb.context) if @CONF[:IRB_RC]
|
@CONF[:IRB_RC]&.call(irb.context)
|
||||||
@CONF[:MAIN_CONTEXT] = irb.context
|
@CONF[:MAIN_CONTEXT] = irb.context
|
||||||
|
|
||||||
trap("SIGINT") do
|
trap("SIGINT") do
|
||||||
|
|||||||
@ -51,7 +51,7 @@ class Dependency
|
|||||||
end
|
end
|
||||||
|
|
||||||
def modify_build_environment
|
def modify_build_environment
|
||||||
env_proc.call unless env_proc.nil?
|
env_proc&.call
|
||||||
end
|
end
|
||||||
|
|
||||||
def inspect
|
def inspect
|
||||||
|
|||||||
@ -358,7 +358,7 @@ class FormulaAuditor
|
|||||||
end
|
end
|
||||||
valid_alias_names = [alias_name_major, alias_name_major_minor]
|
valid_alias_names = [alias_name_major, alias_name_major_minor]
|
||||||
|
|
||||||
if formula.tap && !formula.tap.core_tap?
|
unless formula.tap&.core_tap?
|
||||||
versioned_aliases.map! { |a| "#{formula.tap}/#{a}" }
|
versioned_aliases.map! { |a| "#{formula.tap}/#{a}" }
|
||||||
valid_alias_names.map! { |a| "#{formula.tap}/#{a}" }
|
valid_alias_names.map! { |a| "#{formula.tap}/#{a}" }
|
||||||
end
|
end
|
||||||
@ -707,7 +707,7 @@ class FormulaAuditor
|
|||||||
end
|
end
|
||||||
|
|
||||||
stable = formula.stable
|
stable = formula.stable
|
||||||
case stable && stable.url
|
case stable&.url
|
||||||
when /[\d\._-](alpha|beta|rc\d)/
|
when /[\d\._-](alpha|beta|rc\d)/
|
||||||
matched = Regexp.last_match(1)
|
matched = Regexp.last_match(1)
|
||||||
version_prefix = stable.version.to_s.sub(/\d+$/, "")
|
version_prefix = stable.version.to_s.sub(/\d+$/, "")
|
||||||
@ -1018,7 +1018,7 @@ class FormulaAuditor
|
|||||||
def audit_reverse_migration
|
def audit_reverse_migration
|
||||||
# Only enforce for new formula being re-added to core and official taps
|
# Only enforce for new formula being re-added to core and official taps
|
||||||
return unless @strict
|
return unless @strict
|
||||||
return unless formula.tap && formula.tap.official?
|
return unless formula.tap&.official?
|
||||||
return unless formula.tap.tap_migrations.key?(formula.name)
|
return unless formula.tap.tap_migrations.key?(formula.name)
|
||||||
|
|
||||||
problem <<-EOS.undent
|
problem <<-EOS.undent
|
||||||
|
|||||||
@ -47,7 +47,7 @@ BOTTLE_ERB = <<-EOS.freeze
|
|||||||
<% elsif cellar != BottleSpecification::DEFAULT_CELLAR %>
|
<% elsif cellar != BottleSpecification::DEFAULT_CELLAR %>
|
||||||
cellar "<%= cellar %>"
|
cellar "<%= cellar %>"
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if rebuild > 0 %>
|
<% if rebuild.positive? %>
|
||||||
rebuild <%= rebuild %>
|
rebuild <%= rebuild %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% checksums.each do |checksum_type, checksum_values| %>
|
<% checksums.each do |checksum_type, checksum_values| %>
|
||||||
@ -186,7 +186,7 @@ module Homebrew
|
|||||||
ohai "Determining #{f.full_name} bottle rebuild..."
|
ohai "Determining #{f.full_name} bottle rebuild..."
|
||||||
versions = FormulaVersions.new(f)
|
versions = FormulaVersions.new(f)
|
||||||
rebuilds = versions.bottle_version_map("origin/master")[f.pkg_version]
|
rebuilds = versions.bottle_version_map("origin/master")[f.pkg_version]
|
||||||
rebuilds.pop if rebuilds.last.to_i > 0
|
rebuilds.pop if rebuilds.last.to_i.positive?
|
||||||
rebuild = rebuilds.empty? ? 0 : rebuilds.max.to_i + 1
|
rebuild = rebuilds.empty? ? 0 : rebuilds.max.to_i + 1
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -283,7 +283,7 @@ module Homebrew
|
|||||||
raise
|
raise
|
||||||
ensure
|
ensure
|
||||||
ignore_interrupts do
|
ignore_interrupts do
|
||||||
original_tab.write if original_tab
|
original_tab&.write
|
||||||
unless ARGV.include? "--skip-relocation"
|
unless ARGV.include? "--skip-relocation"
|
||||||
keg.replace_placeholders_with_locations changed_files
|
keg.replace_placeholders_with_locations changed_files
|
||||||
end
|
end
|
||||||
|
|||||||
@ -89,7 +89,7 @@ module Homebrew
|
|||||||
|
|
||||||
def check_for_duplicate_pull_requests(formula)
|
def check_for_duplicate_pull_requests(formula)
|
||||||
pull_requests = fetch_pull_requests(formula)
|
pull_requests = fetch_pull_requests(formula)
|
||||||
return unless pull_requests && !pull_requests.empty?
|
return unless pull_requests&.empty?
|
||||||
duplicates_message = <<-EOS.undent
|
duplicates_message = <<-EOS.undent
|
||||||
These open pull requests may be duplicates:
|
These open pull requests may be duplicates:
|
||||||
#{pull_requests.map { |pr| "#{pr["title"]} #{pr["html_url"]}" }.join("\n")}
|
#{pull_requests.map { |pr| "#{pr["title"]} #{pr["html_url"]}" }.join("\n")}
|
||||||
@ -124,7 +124,7 @@ module Homebrew
|
|||||||
Formula.each do |f|
|
Formula.each do |f|
|
||||||
if is_devel && f.devel && f.devel.url && f.devel.url.match(base_url)
|
if is_devel && f.devel && f.devel.url && f.devel.url.match(base_url)
|
||||||
guesses << f
|
guesses << f
|
||||||
elsif f.stable && f.stable.url && f.stable.url.match(base_url)
|
elsif f.stable&.url && f.stable.url.match(base_url)
|
||||||
guesses << f
|
guesses << f
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -69,13 +69,13 @@ module Homebrew
|
|||||||
tap = nil
|
tap = nil
|
||||||
|
|
||||||
ARGV.named.each do |arg|
|
ARGV.named.each do |arg|
|
||||||
if arg.to_i > 0
|
if arg.to_i.positive?
|
||||||
issue = arg
|
issue = arg
|
||||||
url = "https://github.com/Homebrew/homebrew-core/pull/#{arg}"
|
url = "https://github.com/Homebrew/homebrew-core/pull/#{arg}"
|
||||||
tap = CoreTap.instance
|
tap = CoreTap.instance
|
||||||
elsif (testing_match = arg.match %r{/job/Homebrew.*Testing/(\d+)/})
|
elsif (testing_match = arg.match %r{/job/Homebrew.*Testing/(\d+)/})
|
||||||
tap = ARGV.value("tap")
|
tap = ARGV.value("tap")
|
||||||
tap = if tap && tap.start_with?("homebrew/")
|
tap = if tap&.start_with?("homebrew/")
|
||||||
Tap.fetch("homebrew", tap.strip_prefix("homebrew/"))
|
Tap.fetch("homebrew", tap.strip_prefix("homebrew/"))
|
||||||
elsif tap
|
elsif tap
|
||||||
odie "Tap option did not start with \"homebrew/\": #{tap}"
|
odie "Tap option did not start with \"homebrew/\": #{tap}"
|
||||||
@ -350,7 +350,7 @@ module Homebrew
|
|||||||
files << Regexp.last_match(1) if line =~ %r{^\+\+\+ b/(.*)}
|
files << Regexp.last_match(1) if line =~ %r{^\+\+\+ b/(.*)}
|
||||||
end
|
end
|
||||||
files.each do |file|
|
files.each do |file|
|
||||||
if tap && tap.formula_file?(file)
|
if tap&.formula_file?(file)
|
||||||
formula_name = File.basename(file, ".rb")
|
formula_name = File.basename(file, ".rb")
|
||||||
formulae << formula_name unless formulae.include?(formula_name)
|
formulae << formula_name unless formulae.include?(formula_name)
|
||||||
else
|
else
|
||||||
|
|||||||
@ -10,10 +10,8 @@ module Homebrew
|
|||||||
|
|
||||||
def release_notes
|
def release_notes
|
||||||
previous_tag = ARGV.named.first
|
previous_tag = ARGV.named.first
|
||||||
unless previous_tag
|
previous_tag ||= Utils.popen_read("git tag --list --sort=-version:refname")
|
||||||
previous_tag = Utils.popen_read("git tag --list --sort=-version:refname")
|
|
||||||
.lines.first.chomp
|
.lines.first.chomp
|
||||||
end
|
|
||||||
odie "Could not find any previous tags!" unless previous_tag
|
odie "Could not find any previous tags!" unless previous_tag
|
||||||
|
|
||||||
end_ref = ARGV.named[1] || "origin/master"
|
end_ref = ARGV.named[1] || "origin/master"
|
||||||
|
|||||||
@ -522,7 +522,7 @@ module Homebrew
|
|||||||
homebrew_owned = @found.all? do |path|
|
homebrew_owned = @found.all? do |path|
|
||||||
Pathname.new(path).realpath.to_s.start_with? "#{HOMEBREW_CELLAR}/gettext"
|
Pathname.new(path).realpath.to_s.start_with? "#{HOMEBREW_CELLAR}/gettext"
|
||||||
end
|
end
|
||||||
return if gettext && gettext.linked_keg.directory? && homebrew_owned
|
return if gettext&.linked_keg&.directory? && homebrew_owned
|
||||||
|
|
||||||
inject_file_list @found, <<-EOS.undent
|
inject_file_list @found, <<-EOS.undent
|
||||||
gettext files detected at a system prefix.
|
gettext files detected at a system prefix.
|
||||||
@ -540,7 +540,7 @@ module Homebrew
|
|||||||
rescue
|
rescue
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
if libiconv && libiconv.linked_keg.directory?
|
if libiconv&.linked_keg&.directory?
|
||||||
unless libiconv.keg_only?
|
unless libiconv.keg_only?
|
||||||
<<-EOS.undent
|
<<-EOS.undent
|
||||||
A libiconv formula is installed and linked.
|
A libiconv formula is installed and linked.
|
||||||
|
|||||||
@ -416,7 +416,7 @@ class BuildError < RuntimeError
|
|||||||
|
|
||||||
puts
|
puts
|
||||||
|
|
||||||
if issues && !issues.empty?
|
unless issues&.empty?
|
||||||
puts "These open issues may also help:"
|
puts "These open issues may also help:"
|
||||||
puts issues.map { |i| "#{i["title"]} #{i["html_url"]}" }.join("\n")
|
puts issues.map { |i| "#{i["title"]} #{i["html_url"]}" }.join("\n")
|
||||||
end
|
end
|
||||||
|
|||||||
@ -144,7 +144,7 @@ module HomebrewArgvExtension
|
|||||||
def value(name)
|
def value(name)
|
||||||
arg_prefix = "--#{name}="
|
arg_prefix = "--#{name}="
|
||||||
flag_with_value = find { |arg| arg.start_with?(arg_prefix) }
|
flag_with_value = find { |arg| arg.start_with?(arg_prefix) }
|
||||||
flag_with_value.strip_prefix(arg_prefix) if flag_with_value
|
flag_with_value&.strip_prefix(arg_prefix)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Returns an array of values that were given as a comma-separated list.
|
# Returns an array of values that were given as a comma-separated list.
|
||||||
@ -236,7 +236,7 @@ module HomebrewArgvExtension
|
|||||||
|
|
||||||
def bottle_arch
|
def bottle_arch
|
||||||
arch = value "bottle-arch"
|
arch = value "bottle-arch"
|
||||||
arch.to_sym if arch
|
arch&.to_sym
|
||||||
end
|
end
|
||||||
|
|
||||||
def build_from_source?
|
def build_from_source?
|
||||||
|
|||||||
@ -28,7 +28,7 @@ module EnvActivation
|
|||||||
end
|
end
|
||||||
|
|
||||||
def clear_sensitive_environment!
|
def clear_sensitive_environment!
|
||||||
ENV.keys.each do |key|
|
ENV.each_key do |key|
|
||||||
next unless /(cookie|key|token)/i =~ key
|
next unless /(cookie|key|token)/i =~ key
|
||||||
ENV.delete key
|
ENV.delete key
|
||||||
end
|
end
|
||||||
|
|||||||
@ -233,8 +233,8 @@ module Stdenv
|
|||||||
|
|
||||||
def make_jobs
|
def make_jobs
|
||||||
# '-j' requires a positive integral argument
|
# '-j' requires a positive integral argument
|
||||||
if self["HOMEBREW_MAKE_JOBS"].to_i > 0
|
if (jobs = self["HOMEBREW_MAKE_JOBS"].to_i).positive?
|
||||||
self["HOMEBREW_MAKE_JOBS"].to_i
|
jobs
|
||||||
else
|
else
|
||||||
Hardware::CPU.cores
|
Hardware::CPU.cores
|
||||||
end
|
end
|
||||||
|
|||||||
@ -472,7 +472,7 @@ class Formula
|
|||||||
return true if devel && tab.devel_version && tab.devel_version < devel.version
|
return true if devel && tab.devel_version && tab.devel_version < devel.version
|
||||||
|
|
||||||
if options[:fetch_head]
|
if options[:fetch_head]
|
||||||
return false unless head && head.downloader.is_a?(VCSDownloadStrategy)
|
return false unless head&.downloader.is_a?(VCSDownloadStrategy)
|
||||||
downloader = head.downloader
|
downloader = head.downloader
|
||||||
downloader.shutup! unless ARGV.verbose?
|
downloader.shutup! unless ARGV.verbose?
|
||||||
downloader.commit_outdated?(version.version.commit)
|
downloader.commit_outdated?(version.version.commit)
|
||||||
@ -1115,8 +1115,8 @@ class Formula
|
|||||||
|
|
||||||
# @private
|
# @private
|
||||||
def unlock
|
def unlock
|
||||||
@lock.unlock unless @lock.nil?
|
@lock&.unlock
|
||||||
@oldname_lock.unlock unless @oldname_lock.nil?
|
@oldname_lock&.unlock
|
||||||
end
|
end
|
||||||
|
|
||||||
def migration_needed?
|
def migration_needed?
|
||||||
@ -1182,7 +1182,8 @@ class Formula
|
|||||||
# Returns false if the formula wasn't installed with an alias.
|
# Returns false if the formula wasn't installed with an alias.
|
||||||
def installed_alias_target_changed?
|
def installed_alias_target_changed?
|
||||||
target = current_installed_alias_target
|
target = current_installed_alias_target
|
||||||
target && target.name != name
|
return false unless target
|
||||||
|
target.name != name
|
||||||
end
|
end
|
||||||
|
|
||||||
# Is this formula the target of an alias used to install an old formula?
|
# Is this formula the target of an alias used to install an old formula?
|
||||||
@ -1440,13 +1441,14 @@ class Formula
|
|||||||
# True if this formula is provided by Homebrew itself
|
# True if this formula is provided by Homebrew itself
|
||||||
# @private
|
# @private
|
||||||
def core_formula?
|
def core_formula?
|
||||||
tap && tap.core_tap?
|
tap&.core_tap?
|
||||||
end
|
end
|
||||||
|
|
||||||
# True if this formula is provided by external Tap
|
# True if this formula is provided by external Tap
|
||||||
# @private
|
# @private
|
||||||
def tap?
|
def tap?
|
||||||
tap && !tap.core_tap?
|
return false unless tap
|
||||||
|
!tap.core_tap?
|
||||||
end
|
end
|
||||||
|
|
||||||
# @private
|
# @private
|
||||||
@ -1525,10 +1527,10 @@ class Formula
|
|||||||
"oldname" => oldname,
|
"oldname" => oldname,
|
||||||
"aliases" => aliases,
|
"aliases" => aliases,
|
||||||
"versions" => {
|
"versions" => {
|
||||||
"stable" => (stable.version.to_s if stable),
|
"stable" => stable&.version.to_s,
|
||||||
"bottle" => bottle ? true : false,
|
"bottle" => bottle ? true : false,
|
||||||
"devel" => (devel.version.to_s if devel),
|
"devel" => devel&.version.to_s,
|
||||||
"head" => (head.version.to_s if head),
|
"head" => head&.version.to_s,
|
||||||
},
|
},
|
||||||
"revision" => revision,
|
"revision" => revision,
|
||||||
"version_scheme" => version_scheme,
|
"version_scheme" => version_scheme,
|
||||||
@ -1570,7 +1572,7 @@ class Formula
|
|||||||
"root_url" => bottle_spec.root_url,
|
"root_url" => bottle_spec.root_url,
|
||||||
}
|
}
|
||||||
bottle_info["files"] = {}
|
bottle_info["files"] = {}
|
||||||
bottle_spec.collector.keys.each do |os|
|
bottle_spec.collector.keys.each do |os| # rubocop:disable Performance/HashEachMethods
|
||||||
checksum = bottle_spec.collector[os]
|
checksum = bottle_spec.collector[os]
|
||||||
bottle_info["files"][os] = {
|
bottle_info["files"][os] = {
|
||||||
"url" => "#{bottle_spec.root_url}/#{Bottle::Filename.create(self, os, bottle_spec.rebuild)}",
|
"url" => "#{bottle_spec.root_url}/#{Bottle::Filename.create(self, os, bottle_spec.rebuild)}",
|
||||||
|
|||||||
@ -269,7 +269,7 @@ class FormulaInstaller
|
|||||||
oh1 "Installing #{Formatter.identifier(formula.full_name)} #{options}".strip
|
oh1 "Installing #{Formatter.identifier(formula.full_name)} #{options}".strip
|
||||||
end
|
end
|
||||||
|
|
||||||
if formula.tap && !formula.tap.private?
|
unless formula.tap&.private?
|
||||||
action = "#{formula.full_name} #{options}".strip
|
action = "#{formula.full_name} #{options}".strip
|
||||||
Utils::Analytics.report_event("install", action)
|
Utils::Analytics.report_event("install", action)
|
||||||
|
|
||||||
@ -560,7 +560,7 @@ class FormulaInstaller
|
|||||||
end
|
end
|
||||||
raise
|
raise
|
||||||
else
|
else
|
||||||
ignore_interrupts { tmp_keg.rmtree if tmp_keg && tmp_keg.directory? }
|
ignore_interrupts { tmp_keg.rmtree if tmp_keg&.directory? }
|
||||||
end
|
end
|
||||||
|
|
||||||
def caveats
|
def caveats
|
||||||
|
|||||||
@ -16,12 +16,12 @@ module InstallRenamed
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def +(path)
|
def +(other)
|
||||||
super(path).extend(InstallRenamed)
|
super(other).extend(InstallRenamed)
|
||||||
end
|
end
|
||||||
|
|
||||||
def /(path)
|
def /(other)
|
||||||
super(path).extend(InstallRenamed)
|
super(other).extend(InstallRenamed)
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|||||||
@ -338,7 +338,7 @@ class Keg
|
|||||||
dir if dir.directory? && dir.children.any? { |f| f.basename.to_s.start_with?("_") }
|
dir if dir.directory? && dir.children.any? { |f| f.basename.to_s.start_with?("_") }
|
||||||
when :fish then path/"share/fish/vendor_completions.d"
|
when :fish then path/"share/fish/vendor_completions.d"
|
||||||
end
|
end
|
||||||
dir && dir.directory? && !dir.children.empty?
|
dir&.directory? && !dir.children.empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
def functions_installed?(shell)
|
def functions_installed?(shell)
|
||||||
|
|||||||
@ -23,7 +23,7 @@ module Language
|
|||||||
else
|
else
|
||||||
homebrew_site_packages(version)
|
homebrew_site_packages(version)
|
||||||
end
|
end
|
||||||
block.call python, version if block
|
block&.call python, version
|
||||||
end
|
end
|
||||||
ENV["PYTHONPATH"] = original_pythonpath
|
ENV["PYTHONPATH"] = original_pythonpath
|
||||||
end
|
end
|
||||||
|
|||||||
@ -44,8 +44,6 @@ class Locale
|
|||||||
raise ParserError, "'#{value}' does not match #{regex}" unless value =~ regex
|
raise ParserError, "'#{value}' does not match #{regex}" unless value =~ regex
|
||||||
instance_variable_set(:"@#{key}", value)
|
instance_variable_set(:"@#{key}", value)
|
||||||
end
|
end
|
||||||
|
|
||||||
self
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def include?(other)
|
def include?(other)
|
||||||
|
|||||||
@ -69,29 +69,29 @@ class Options
|
|||||||
@options.each(*args, &block)
|
@options.each(*args, &block)
|
||||||
end
|
end
|
||||||
|
|
||||||
def <<(o)
|
def <<(other)
|
||||||
@options << o
|
@options << other
|
||||||
self
|
self
|
||||||
end
|
end
|
||||||
|
|
||||||
def +(o)
|
def +(other)
|
||||||
self.class.new(@options + o)
|
self.class.new(@options + other)
|
||||||
end
|
end
|
||||||
|
|
||||||
def -(o)
|
def -(other)
|
||||||
self.class.new(@options - o)
|
self.class.new(@options - other)
|
||||||
end
|
end
|
||||||
|
|
||||||
def &(o)
|
def &(other)
|
||||||
self.class.new(@options & o)
|
self.class.new(@options & other)
|
||||||
end
|
end
|
||||||
|
|
||||||
def |(o)
|
def |(other)
|
||||||
self.class.new(@options | o)
|
self.class.new(@options | other)
|
||||||
end
|
end
|
||||||
|
|
||||||
def *(arg)
|
def *(other)
|
||||||
@options.to_a * arg
|
@options.to_a * other
|
||||||
end
|
end
|
||||||
|
|
||||||
def empty?
|
def empty?
|
||||||
|
|||||||
@ -11,7 +11,7 @@ module OS
|
|||||||
module Mac
|
module Mac
|
||||||
module_function
|
module_function
|
||||||
|
|
||||||
::MacOS = self # rubocop:disable Style/ConstantName
|
::MacOS = self # rubocop:disable Naming/ConstantName
|
||||||
|
|
||||||
raise "Loaded OS::Mac on generic OS!" if ENV["HOMEBREW_TEST_GENERIC_OS"]
|
raise "Loaded OS::Mac on generic OS!" if ENV["HOMEBREW_TEST_GENERIC_OS"]
|
||||||
|
|
||||||
@ -104,7 +104,7 @@ module OS
|
|||||||
# Returns the path to an SDK or nil, following the rules set by #sdk.
|
# Returns the path to an SDK or nil, following the rules set by #sdk.
|
||||||
def sdk_path(v = nil)
|
def sdk_path(v = nil)
|
||||||
s = sdk(v)
|
s = sdk(v)
|
||||||
s.path unless s.nil?
|
s&.path
|
||||||
end
|
end
|
||||||
|
|
||||||
# See these issues for some history:
|
# See these issues for some history:
|
||||||
|
|||||||
@ -23,7 +23,7 @@ class PkgVersion
|
|||||||
end
|
end
|
||||||
|
|
||||||
def to_s
|
def to_s
|
||||||
if revision > 0
|
if revision.positive?
|
||||||
"#{version}_#{revision}"
|
"#{version}_#{revision}"
|
||||||
else
|
else
|
||||||
version.to_s
|
version.to_s
|
||||||
|
|||||||
@ -69,14 +69,14 @@ class JavaRequirement < Requirement
|
|||||||
rescue FormulaUnavailableError
|
rescue FormulaUnavailableError
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
javas << jdk.bin/"java" if jdk && jdk.installed?
|
javas << jdk.bin/"java" if jdk&.installed?
|
||||||
javas << which("java")
|
javas << which("java")
|
||||||
javas
|
javas
|
||||||
end
|
end
|
||||||
|
|
||||||
def preferred_java
|
def preferred_java
|
||||||
possible_javas.detect do |java|
|
possible_javas.detect do |java|
|
||||||
next false unless java && java.executable?
|
next false unless java&.executable?
|
||||||
next true unless @version
|
next true unless @version
|
||||||
next true if satisfies_version(java)
|
next true if satisfies_version(java)
|
||||||
end
|
end
|
||||||
|
|||||||
@ -41,9 +41,7 @@ class RubyRequirement < Requirement
|
|||||||
def rubies
|
def rubies
|
||||||
rubies = which_all("ruby")
|
rubies = which_all("ruby")
|
||||||
ruby_formula = Formula["ruby"]
|
ruby_formula = Formula["ruby"]
|
||||||
if ruby_formula && ruby_formula.installed?
|
rubies.unshift ruby_formula.bin/"ruby" if ruby_formula&.installed?
|
||||||
rubies.unshift ruby_formula.bin/"ruby"
|
|
||||||
end
|
|
||||||
rubies.uniq
|
rubies.uniq
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -87,8 +87,8 @@ module RuboCop
|
|||||||
# preceding_comp_arr: array containing components of same type
|
# preceding_comp_arr: array containing components of same type
|
||||||
order_idx, curr_p_idx, preceding_comp_arr = get_state(node1)
|
order_idx, curr_p_idx, preceding_comp_arr = get_state(node1)
|
||||||
|
|
||||||
# curr_p_idx > 0 means node1 needs to be grouped with its own kind
|
# curr_p_idx.positive? means node1 needs to be grouped with its own kind
|
||||||
if curr_p_idx > 0
|
if curr_p_idx.positive?
|
||||||
node2 = preceding_comp_arr[curr_p_idx - 1]
|
node2 = preceding_comp_arr[curr_p_idx - 1]
|
||||||
indentation = " " * (start_column(node2) - line_start_column(node2))
|
indentation = " " * (start_column(node2) - line_start_column(node2))
|
||||||
line_breaks = node2.multiline? ? "\n\n" : "\n"
|
line_breaks = node2.multiline? ? "\n\n" : "\n"
|
||||||
|
|||||||
@ -167,7 +167,7 @@ class Sandbox
|
|||||||
|
|
||||||
def add_rule(rule)
|
def add_rule(rule)
|
||||||
s = "("
|
s = "("
|
||||||
s << ((rule[:allow]) ? "allow" : "deny")
|
s << (rule[:allow] ? "allow" : "deny")
|
||||||
s << " #{rule[:operation]}"
|
s << " #{rule[:operation]}"
|
||||||
s << " (#{rule[:filter]})" if rule[:filter]
|
s << " (#{rule[:filter]})" if rule[:filter]
|
||||||
s << " (with #{rule[:modifier]})" if rule[:modifier]
|
s << " (with #{rule[:modifier]})" if rule[:modifier]
|
||||||
|
|||||||
@ -267,7 +267,7 @@ class Bottle
|
|||||||
end
|
end
|
||||||
|
|
||||||
def suffix
|
def suffix
|
||||||
s = (rebuild > 0) ? ".#{rebuild}" : ""
|
s = rebuild.positive? ? ".#{rebuild}" : ""
|
||||||
".bottle#{s}.tar.gz"
|
".bottle#{s}.tar.gz"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -324,7 +324,7 @@ class Tab < OpenStruct
|
|||||||
"poured_from_bottle" => poured_from_bottle,
|
"poured_from_bottle" => poured_from_bottle,
|
||||||
"installed_as_dependency" => installed_as_dependency,
|
"installed_as_dependency" => installed_as_dependency,
|
||||||
"installed_on_request" => installed_on_request,
|
"installed_on_request" => installed_on_request,
|
||||||
"changed_files" => changed_files && changed_files.map(&:to_s),
|
"changed_files" => changed_files&.map(&:to_s),
|
||||||
"time" => time,
|
"time" => time,
|
||||||
"source_modified_time" => source_modified_time.to_i,
|
"source_modified_time" => source_modified_time.to_i,
|
||||||
"HEAD" => self.HEAD,
|
"HEAD" => self.HEAD,
|
||||||
|
|||||||
@ -648,6 +648,5 @@ class TapConfig
|
|||||||
tap.path.cd do
|
tap.path.cd do
|
||||||
safe_system "git", "config", "--local", "--replace-all", "homebrew.#{key}", value.to_s
|
safe_system "git", "config", "--local", "--replace-all", "homebrew.#{key}", value.to_s
|
||||||
end
|
end
|
||||||
value
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -86,15 +86,9 @@ module GitHub
|
|||||||
|
|
||||||
def api_credentials_type
|
def api_credentials_type
|
||||||
token, username = api_credentials
|
token, username = api_credentials
|
||||||
if token && !token.empty?
|
return :none if !token || token.empty?
|
||||||
if username && !username.empty?
|
return :keychain if !username || username.empty?
|
||||||
:keychain
|
:environment
|
||||||
else
|
|
||||||
:environment
|
|
||||||
end
|
|
||||||
else
|
|
||||||
:none
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def api_credentials_error_message(response_headers, needed_scopes)
|
def api_credentials_error_message(response_headers, needed_scopes)
|
||||||
|
|||||||
@ -51,8 +51,6 @@ module Utils
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
SHELL_PROFILE_MAP = {
|
SHELL_PROFILE_MAP = {
|
||||||
bash: "~/.bash_profile",
|
bash: "~/.bash_profile",
|
||||||
csh: "~/.cshrc",
|
csh: "~/.cshrc",
|
||||||
@ -65,8 +63,6 @@ module Utils
|
|||||||
|
|
||||||
UNSAFE_SHELL_CHAR = %r{([^A-Za-z0-9_\-.,:/@\n])}
|
UNSAFE_SHELL_CHAR = %r{([^A-Za-z0-9_\-.,:/@\n])}
|
||||||
|
|
||||||
module_function
|
|
||||||
|
|
||||||
def csh_quote(str)
|
def csh_quote(str)
|
||||||
# ruby's implementation of shell_escape
|
# ruby's implementation of shell_escape
|
||||||
str = str.to_s
|
str = str.to_s
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user