Merge branch 'master' into license
This commit is contained in:
		
						commit
						57fd1fdc7e
					
				
							
								
								
									
										12
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -19,6 +19,7 @@
 | 
				
			|||||||
/Library/Taps
 | 
					/Library/Taps
 | 
				
			||||||
/Library/PinnedTaps
 | 
					/Library/PinnedTaps
 | 
				
			||||||
/Library/Homebrew/.byebug_history
 | 
					/Library/Homebrew/.byebug_history
 | 
				
			||||||
 | 
					/Library/Homebrew/sorbet/rbi/hidden-definitions/errors.txt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Ignore Bundler files
 | 
					# Ignore Bundler files
 | 
				
			||||||
**/.bundle/bin
 | 
					**/.bundle/bin
 | 
				
			||||||
@ -128,9 +129,6 @@
 | 
				
			|||||||
**/vendor/bundle/ruby/*/gems/simplecov-*/
 | 
					**/vendor/bundle/ruby/*/gems/simplecov-*/
 | 
				
			||||||
**/vendor/bundle/ruby/*/gems/simplecov-cobertura-*/
 | 
					**/vendor/bundle/ruby/*/gems/simplecov-cobertura-*/
 | 
				
			||||||
**/vendor/bundle/ruby/*/gems/simplecov-html-*/
 | 
					**/vendor/bundle/ruby/*/gems/simplecov-html-*/
 | 
				
			||||||
**/vendor/bundle/ruby/*/gems/sorbet-*/
 | 
					 | 
				
			||||||
**/vendor/bundle/ruby/*/gems/sorbet-runtime-*/
 | 
					 | 
				
			||||||
**/vendor/bundle/ruby/*/gems/tapioca-*/
 | 
					 | 
				
			||||||
**/vendor/bundle/ruby/*/gems/term-ansicolor-*/
 | 
					**/vendor/bundle/ruby/*/gems/term-ansicolor-*/
 | 
				
			||||||
**/vendor/bundle/ruby/*/gems/thor-*/
 | 
					**/vendor/bundle/ruby/*/gems/thor-*/
 | 
				
			||||||
**/vendor/bundle/ruby/*/gems/tins-*/
 | 
					**/vendor/bundle/ruby/*/gems/tins-*/
 | 
				
			||||||
@ -139,6 +137,14 @@
 | 
				
			|||||||
**/vendor/bundle/ruby/*/gems/unicode-display_width-*/
 | 
					**/vendor/bundle/ruby/*/gems/unicode-display_width-*/
 | 
				
			||||||
**/vendor/bundle/ruby/*/gems/webrobots-*/
 | 
					**/vendor/bundle/ruby/*/gems/webrobots-*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Ignore conditional dependencies we don't wish to vendor
 | 
				
			||||||
 | 
					**/vendor/bundle/ruby/*/gems/bindata-*/
 | 
				
			||||||
 | 
					**/vendor/bundle/ruby/*/gems/elftools-*/
 | 
				
			||||||
 | 
					**/vendor/bundle/ruby/*/gems/patchelf-*/
 | 
				
			||||||
 | 
					**/vendor/bundle/ruby/*/gems/sorbet-*/
 | 
				
			||||||
 | 
					**/vendor/bundle/ruby/*/gems/sorbet-runtime-*/
 | 
				
			||||||
 | 
					**/vendor/bundle/ruby/*/gems/tapioca-*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Ignore `bin` contents (again).
 | 
					# Ignore `bin` contents (again).
 | 
				
			||||||
/bin
 | 
					/bin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -56,7 +56,7 @@ Metrics/ClassLength:
 | 
				
			|||||||
  Max: 1400
 | 
					  Max: 1400
 | 
				
			||||||
Metrics/CyclomaticComplexity:
 | 
					Metrics/CyclomaticComplexity:
 | 
				
			||||||
  Enabled: true
 | 
					  Enabled: true
 | 
				
			||||||
  Max: 75
 | 
					  Max: 85
 | 
				
			||||||
Metrics/MethodLength:
 | 
					Metrics/MethodLength:
 | 
				
			||||||
  Enabled: true
 | 
					  Enabled: true
 | 
				
			||||||
  Max: 300
 | 
					  Max: 300
 | 
				
			||||||
 | 
				
			|||||||
@ -23,6 +23,7 @@ end
 | 
				
			|||||||
gem "activesupport"
 | 
					gem "activesupport"
 | 
				
			||||||
gem "concurrent-ruby"
 | 
					gem "concurrent-ruby"
 | 
				
			||||||
gem "mechanize"
 | 
					gem "mechanize"
 | 
				
			||||||
 | 
					gem "patchelf" if ENV["HOMEBREW_PATCHELF_RB"]
 | 
				
			||||||
gem "plist"
 | 
					gem "plist"
 | 
				
			||||||
gem "rubocop-performance"
 | 
					gem "rubocop-performance"
 | 
				
			||||||
gem "rubocop-rspec"
 | 
					gem "rubocop-rspec"
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
GEM
 | 
					GEM
 | 
				
			||||||
  remote: https://rubygems.org/
 | 
					  remote: https://rubygems.org/
 | 
				
			||||||
  specs:
 | 
					  specs:
 | 
				
			||||||
    activesupport (6.0.3.1)
 | 
					    activesupport (6.0.3.2)
 | 
				
			||||||
      concurrent-ruby (~> 1.0, >= 1.0.2)
 | 
					      concurrent-ruby (~> 1.0, >= 1.0.2)
 | 
				
			||||||
      i18n (>= 0.7, < 2)
 | 
					      i18n (>= 0.7, < 2)
 | 
				
			||||||
      minitest (~> 5.1)
 | 
					      minitest (~> 5.1)
 | 
				
			||||||
@ -17,7 +17,7 @@ GEM
 | 
				
			|||||||
      term-ansicolor (~> 1.3)
 | 
					      term-ansicolor (~> 1.3)
 | 
				
			||||||
      thor (>= 0.19.4, < 2.0)
 | 
					      thor (>= 0.19.4, < 2.0)
 | 
				
			||||||
      tins (~> 1.6)
 | 
					      tins (~> 1.6)
 | 
				
			||||||
    diff-lcs (1.3)
 | 
					    diff-lcs (1.4.2)
 | 
				
			||||||
    docile (1.3.2)
 | 
					    docile (1.3.2)
 | 
				
			||||||
    domain_name (0.5.20190701)
 | 
					    domain_name (0.5.20190701)
 | 
				
			||||||
      unf (>= 0.0.5, < 1.0.0)
 | 
					      unf (>= 0.0.5, < 1.0.0)
 | 
				
			||||||
@ -51,8 +51,8 @@ GEM
 | 
				
			|||||||
    parallel (1.19.2)
 | 
					    parallel (1.19.2)
 | 
				
			||||||
    parallel_tests (3.0.0)
 | 
					    parallel_tests (3.0.0)
 | 
				
			||||||
      parallel
 | 
					      parallel
 | 
				
			||||||
    parser (2.7.1.3)
 | 
					    parser (2.7.1.4)
 | 
				
			||||||
      ast (~> 2.4.0)
 | 
					      ast (~> 2.4.1)
 | 
				
			||||||
    plist (3.5.0)
 | 
					    plist (3.5.0)
 | 
				
			||||||
    rainbow (3.0.0)
 | 
					    rainbow (3.0.0)
 | 
				
			||||||
    rdiscount (2.2.0.1)
 | 
					    rdiscount (2.2.0.1)
 | 
				
			||||||
@ -82,13 +82,13 @@ GEM
 | 
				
			|||||||
    rspec-support (3.9.3)
 | 
					    rspec-support (3.9.3)
 | 
				
			||||||
    rspec-wait (0.0.9)
 | 
					    rspec-wait (0.0.9)
 | 
				
			||||||
      rspec (>= 3, < 4)
 | 
					      rspec (>= 3, < 4)
 | 
				
			||||||
    rubocop (0.85.1)
 | 
					    rubocop (0.86.0)
 | 
				
			||||||
      parallel (~> 1.10)
 | 
					      parallel (~> 1.10)
 | 
				
			||||||
      parser (>= 2.7.0.1)
 | 
					      parser (>= 2.7.0.1)
 | 
				
			||||||
      rainbow (>= 2.2.2, < 4.0)
 | 
					      rainbow (>= 2.2.2, < 4.0)
 | 
				
			||||||
      regexp_parser (>= 1.7)
 | 
					      regexp_parser (>= 1.7)
 | 
				
			||||||
      rexml
 | 
					      rexml
 | 
				
			||||||
      rubocop-ast (>= 0.0.3)
 | 
					      rubocop-ast (>= 0.0.3, < 1.0)
 | 
				
			||||||
      ruby-progressbar (~> 1.7)
 | 
					      ruby-progressbar (~> 1.7)
 | 
				
			||||||
      unicode-display_width (>= 1.4.0, < 2.0)
 | 
					      unicode-display_width (>= 1.4.0, < 2.0)
 | 
				
			||||||
    rubocop-ast (0.0.3)
 | 
					    rubocop-ast (0.0.3)
 | 
				
			||||||
 | 
				
			|||||||
@ -66,6 +66,41 @@ class Bintray
 | 
				
			|||||||
    %w[homebrew linuxbrew].include? org
 | 
					    %w[homebrew linuxbrew].include? org
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def stable_mirrored?(url)
 | 
				
			||||||
 | 
					    headers, = curl_output("--connect-timeout", "15", "--location", "--head", url)
 | 
				
			||||||
 | 
					    status_code = headers.scan(%r{^HTTP/.* (\d+)}).last.first
 | 
				
			||||||
 | 
					    status_code.start_with?("2")
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def mirror_formula(formula, repo: "mirror", publish_package: false)
 | 
				
			||||||
 | 
					    package = Utils::Bottles::Bintray.package formula.name
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    create_package(repo: repo, package: package) unless package_exists?(repo: repo, package: package)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    formula.downloader.fetch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    version = ERB::Util.url_encode(formula.pkg_version)
 | 
				
			||||||
 | 
					    filename = ERB::Util.url_encode(formula.downloader.basename)
 | 
				
			||||||
 | 
					    destination_url = "https://dl.bintray.com/#{@bintray_org}/#{repo}/#{filename}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    odebug "Uploading to #{destination_url}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    upload(
 | 
				
			||||||
 | 
					      formula.downloader.cached_location,
 | 
				
			||||||
 | 
					      repo:        repo,
 | 
				
			||||||
 | 
					      package:     package,
 | 
				
			||||||
 | 
					      version:     version,
 | 
				
			||||||
 | 
					      sha256:      formula.stable.checksum,
 | 
				
			||||||
 | 
					      remote_file: filename,
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    return destination_url unless publish_package
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    odebug "Publishing #{@bintray_org}/#{repo}/#{package}/#{version}"
 | 
				
			||||||
 | 
					    publish(repo: repo, package: package, version: version, file_count: 1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    destination_url
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def create_package(repo:, package:, **extra_data_args)
 | 
					  def create_package(repo:, package:, **extra_data_args)
 | 
				
			||||||
    url = "#{API_URL}/packages/#{@bintray_org}/#{repo}"
 | 
					    url = "#{API_URL}/packages/#{@bintray_org}/#{repo}"
 | 
				
			||||||
    data = { name: package, public_download_numbers: true }
 | 
					    data = { name: package, public_download_numbers: true }
 | 
				
			||||||
 | 
				
			|||||||
@ -58,6 +58,7 @@ begin
 | 
				
			|||||||
      help_flag = true
 | 
					      help_flag = true
 | 
				
			||||||
    elsif !cmd && !help_flag_list.include?(arg)
 | 
					    elsif !cmd && !help_flag_list.include?(arg)
 | 
				
			||||||
      cmd = ARGV.delete_at(i)
 | 
					      cmd = ARGV.delete_at(i)
 | 
				
			||||||
 | 
					      cmd = Commands::HOMEBREW_INTERNAL_COMMAND_ALIASES.fetch(cmd, cmd)
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -233,6 +233,10 @@ HOMEBREW_CACHE="${HOMEBREW_CACHE:-${HOMEBREW_DEFAULT_CACHE}}"
 | 
				
			|||||||
HOMEBREW_LOGS="${HOMEBREW_LOGS:-${HOMEBREW_DEFAULT_LOGS}}"
 | 
					HOMEBREW_LOGS="${HOMEBREW_LOGS:-${HOMEBREW_DEFAULT_LOGS}}"
 | 
				
			||||||
HOMEBREW_TEMP="${HOMEBREW_TEMP:-${HOMEBREW_DEFAULT_TEMP}}"
 | 
					HOMEBREW_TEMP="${HOMEBREW_TEMP:-${HOMEBREW_DEFAULT_TEMP}}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					case "$*" in
 | 
				
			||||||
 | 
					  --cache)             echo "$HOMEBREW_CACHE"; exit 0 ;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
HOMEBREW_USER_AGENT="$HOMEBREW_PRODUCT/$HOMEBREW_USER_AGENT_VERSION ($HOMEBREW_SYSTEM; $HOMEBREW_PROCESSOR $HOMEBREW_OS_USER_AGENT_VERSION)"
 | 
					HOMEBREW_USER_AGENT="$HOMEBREW_PRODUCT/$HOMEBREW_USER_AGENT_VERSION ($HOMEBREW_SYSTEM; $HOMEBREW_PROCESSOR $HOMEBREW_OS_USER_AGENT_VERSION)"
 | 
				
			||||||
curl_version_output="$("$HOMEBREW_CURL" --version 2>/dev/null)"
 | 
					curl_version_output="$("$HOMEBREW_CURL" --version 2>/dev/null)"
 | 
				
			||||||
curl_name_and_version="${curl_version_output%% (*}"
 | 
					curl_name_and_version="${curl_version_output%% (*}"
 | 
				
			||||||
 | 
				
			|||||||
@ -16,10 +16,14 @@ module Cask
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
      def run
 | 
					      def run
 | 
				
			||||||
        casks.each do |cask|
 | 
					        casks.each do |cask|
 | 
				
			||||||
          puts Download.new(cask).downloader.cached_location
 | 
					          puts self.class.cached_location(cask)
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      def self.cached_location(cask)
 | 
				
			||||||
 | 
					        Download.new(cask).downloader.cached_location
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      def self.help
 | 
					      def self.help
 | 
				
			||||||
        "display the file used to cache the Cask"
 | 
					        "display the file used to cache the Cask"
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
				
			|||||||
@ -2,6 +2,8 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
require "fetch"
 | 
					require "fetch"
 | 
				
			||||||
require "cli/parser"
 | 
					require "cli/parser"
 | 
				
			||||||
 | 
					require "cask/cmd"
 | 
				
			||||||
 | 
					require "cask/cask_loader"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module Homebrew
 | 
					module Homebrew
 | 
				
			||||||
  module_function
 | 
					  module_function
 | 
				
			||||||
@ -19,7 +21,12 @@ module Homebrew
 | 
				
			|||||||
             description: "Show the cache file used when building from source."
 | 
					             description: "Show the cache file used when building from source."
 | 
				
			||||||
      switch "--force-bottle",
 | 
					      switch "--force-bottle",
 | 
				
			||||||
             description: "Show the cache file used when pouring a bottle."
 | 
					             description: "Show the cache file used when pouring a bottle."
 | 
				
			||||||
 | 
					      switch "--formula",
 | 
				
			||||||
 | 
					             description: "Show cache files for only formulae"
 | 
				
			||||||
 | 
					      switch "--cask",
 | 
				
			||||||
 | 
					             description: "Show cache files for only casks"
 | 
				
			||||||
      conflicts "--build-from-source", "--force-bottle"
 | 
					      conflicts "--build-from-source", "--force-bottle"
 | 
				
			||||||
 | 
					      conflicts "--formula", "--cask"
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -28,14 +35,38 @@ module Homebrew
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    if args.no_named?
 | 
					    if args.no_named?
 | 
				
			||||||
      puts HOMEBREW_CACHE
 | 
					      puts HOMEBREW_CACHE
 | 
				
			||||||
 | 
					    elsif args.formula?
 | 
				
			||||||
 | 
					      args.named.each do |name|
 | 
				
			||||||
 | 
					        print_formula_cache name
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					    elsif args.cask?
 | 
				
			||||||
 | 
					      args.named.each do |name|
 | 
				
			||||||
 | 
					        print_cask_cache name
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
      args.formulae.each do |f|
 | 
					      args.named.each do |name|
 | 
				
			||||||
        if Fetch.fetch_bottle?(f)
 | 
					        print_formula_cache name
 | 
				
			||||||
          puts f.bottle.cached_download
 | 
					      rescue FormulaUnavailableError
 | 
				
			||||||
        else
 | 
					        begin
 | 
				
			||||||
          puts f.cached_download
 | 
					          print_cask_cache name
 | 
				
			||||||
 | 
					        rescue Cask::CaskUnavailableError
 | 
				
			||||||
 | 
					          odie "No available formula or cask with the name \"#{name}\""
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def print_formula_cache(name)
 | 
				
			||||||
 | 
					    formula = Formulary.factory name
 | 
				
			||||||
 | 
					    if Fetch.fetch_bottle?(formula)
 | 
				
			||||||
 | 
					      puts formula.bottle.cached_download
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      puts formula.cached_download
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def print_cask_cache(name)
 | 
				
			||||||
 | 
					    cask = Cask::CaskLoader.load name
 | 
				
			||||||
 | 
					    puts Cask::Cmd::Cache.cached_location(cask)
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,8 @@
 | 
				
			|||||||
# frozen_string_literal: true
 | 
					# frozen_string_literal: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require "cli/parser"
 | 
					require "cli/parser"
 | 
				
			||||||
 | 
					require "cask/cask_loader"
 | 
				
			||||||
 | 
					require "cask/exceptions"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module Homebrew
 | 
					module Homebrew
 | 
				
			||||||
  module_function
 | 
					  module_function
 | 
				
			||||||
@ -23,7 +25,20 @@ module Homebrew
 | 
				
			|||||||
    if args.no_named?
 | 
					    if args.no_named?
 | 
				
			||||||
      exec_browser HOMEBREW_WWW
 | 
					      exec_browser HOMEBREW_WWW
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
      exec_browser(*args.formulae.map(&:homepage))
 | 
					      homepages = args.named.map do |name|
 | 
				
			||||||
 | 
					        f = Formulary.factory(name)
 | 
				
			||||||
 | 
					        puts "Opening homepage for formula #{name}"
 | 
				
			||||||
 | 
					        f.homepage
 | 
				
			||||||
 | 
					      rescue FormulaUnavailableError
 | 
				
			||||||
 | 
					        begin
 | 
				
			||||||
 | 
					          c = Cask::CaskLoader.load(name)
 | 
				
			||||||
 | 
					          puts "Opening homepage for cask #{name}"
 | 
				
			||||||
 | 
					          c.homepage
 | 
				
			||||||
 | 
					        rescue Cask::CaskUnavailableError
 | 
				
			||||||
 | 
					          odie "No available formula or cask with the name \"#{name}\""
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					      exec_browser(*homepages)
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -29,11 +29,11 @@ module Homebrew
 | 
				
			|||||||
             description: "List global Homebrew analytics data or, if specified, installation and "\
 | 
					             description: "List global Homebrew analytics data or, if specified, installation and "\
 | 
				
			||||||
                          "build error data for <formula> (provided neither `HOMEBREW_NO_ANALYTICS` "\
 | 
					                          "build error data for <formula> (provided neither `HOMEBREW_NO_ANALYTICS` "\
 | 
				
			||||||
                          "nor `HOMEBREW_NO_GITHUB_API` are set)."
 | 
					                          "nor `HOMEBREW_NO_GITHUB_API` are set)."
 | 
				
			||||||
      flag   "--days",
 | 
					      flag   "--days=",
 | 
				
			||||||
             depends_on:  "--analytics",
 | 
					             depends_on:  "--analytics",
 | 
				
			||||||
             description: "How many days of analytics data to retrieve. "\
 | 
					             description: "How many days of analytics data to retrieve. "\
 | 
				
			||||||
                          "The value for <days> must be `30`, `90` or `365`. The default is `30`."
 | 
					                          "The value for <days> must be `30`, `90` or `365`. The default is `30`."
 | 
				
			||||||
      flag   "--category",
 | 
					      flag   "--category=",
 | 
				
			||||||
             depends_on:  "--analytics",
 | 
					             depends_on:  "--analytics",
 | 
				
			||||||
             description: "Which type of analytics data to retrieve. "\
 | 
					             description: "Which type of analytics data to retrieve. "\
 | 
				
			||||||
                          "The value for <category> must be `install`, `install-on-request` or `build-error`; "\
 | 
					                          "The value for <category> must be `install`, `install-on-request` or `build-error`; "\
 | 
				
			||||||
 | 
				
			|||||||
@ -129,6 +129,7 @@ module Homebrew
 | 
				
			|||||||
      puts if args.preinstall?
 | 
					      puts if args.preinstall?
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Commands.rebuild_commands_completion_list
 | 
				
			||||||
    link_completions_manpages_and_docs
 | 
					    link_completions_manpages_and_docs
 | 
				
			||||||
    Tap.each(&:link_completions_and_manpages)
 | 
					    Tap.each(&:link_completions_and_manpages)
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
				
			|||||||
@ -38,10 +38,13 @@ homebrew-update-reset() {
 | 
				
			|||||||
    cd "$DIR" || continue
 | 
					    cd "$DIR" || continue
 | 
				
			||||||
    ohai "Fetching $DIR..."
 | 
					    ohai "Fetching $DIR..."
 | 
				
			||||||
    git fetch --force --tags origin
 | 
					    git fetch --force --tags origin
 | 
				
			||||||
 | 
					    git remote set-head origin --auto >/dev/null
 | 
				
			||||||
    echo
 | 
					    echo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ohai "Resetting $DIR..."
 | 
					    ohai "Resetting $DIR..."
 | 
				
			||||||
    git checkout --force -B master origin/master
 | 
					    head="$(git symbolic-ref refs/remotes/origin/HEAD)"
 | 
				
			||||||
 | 
					    head="${head#refs/remotes/origin/}"
 | 
				
			||||||
 | 
					    git checkout --force -B "$head" origin/HEAD
 | 
				
			||||||
    echo
 | 
					    echo
 | 
				
			||||||
  done
 | 
					  done
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -38,6 +38,7 @@ git_init_if_necessary() {
 | 
				
			|||||||
    git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
 | 
					    git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
 | 
				
			||||||
    latest_tag="$(git ls-remote --tags --refs -q origin | tail -n1 | cut -f2)"
 | 
					    latest_tag="$(git ls-remote --tags --refs -q origin | tail -n1 | cut -f2)"
 | 
				
			||||||
    git fetch --force origin --shallow-since="$latest_tag"
 | 
					    git fetch --force origin --shallow-since="$latest_tag"
 | 
				
			||||||
 | 
					    git remote set-head origin --auto >/dev/null
 | 
				
			||||||
    git reset --hard origin/master
 | 
					    git reset --hard origin/master
 | 
				
			||||||
    SKIP_FETCH_BREW_REPOSITORY=1
 | 
					    SKIP_FETCH_BREW_REPOSITORY=1
 | 
				
			||||||
    set +e
 | 
					    set +e
 | 
				
			||||||
@ -59,6 +60,7 @@ git_init_if_necessary() {
 | 
				
			|||||||
    git config remote.origin.url "$HOMEBREW_CORE_GIT_REMOTE"
 | 
					    git config remote.origin.url "$HOMEBREW_CORE_GIT_REMOTE"
 | 
				
			||||||
    git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
 | 
					    git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
 | 
				
			||||||
    git fetch --force --depth=1 origin refs/heads/master:refs/remotes/origin/master
 | 
					    git fetch --force --depth=1 origin refs/heads/master:refs/remotes/origin/master
 | 
				
			||||||
 | 
					    git remote set-head origin --auto >/dev/null
 | 
				
			||||||
    git reset --hard origin/master
 | 
					    git reset --hard origin/master
 | 
				
			||||||
    SKIP_FETCH_CORE_REPOSITORY=1
 | 
					    SKIP_FETCH_CORE_REPOSITORY=1
 | 
				
			||||||
    set +e
 | 
					    set +e
 | 
				
			||||||
@ -84,6 +86,11 @@ upstream_branch() {
 | 
				
			|||||||
  local upstream_branch
 | 
					  local upstream_branch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  upstream_branch="$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null)"
 | 
					  upstream_branch="$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null)"
 | 
				
			||||||
 | 
					  if [[ -z "$upstream_branch" ]]
 | 
				
			||||||
 | 
					  then
 | 
				
			||||||
 | 
					    git remote set-head origin --auto >/dev/null
 | 
				
			||||||
 | 
					    upstream_branch="$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null)"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
  upstream_branch="${upstream_branch#refs/remotes/origin/}"
 | 
					  upstream_branch="${upstream_branch#refs/remotes/origin/}"
 | 
				
			||||||
  [[ -z "$upstream_branch" ]] && upstream_branch="master"
 | 
					  [[ -z "$upstream_branch" ]] && upstream_branch="master"
 | 
				
			||||||
  echo "$upstream_branch"
 | 
					  echo "$upstream_branch"
 | 
				
			||||||
@ -597,6 +604,7 @@ EOS
 | 
				
			|||||||
        -n "$HOMEBREW_UPDATE_FAILED" ||
 | 
					        -n "$HOMEBREW_UPDATE_FAILED" ||
 | 
				
			||||||
        -n "$HOMEBREW_UPDATE_FORCE" ||
 | 
					        -n "$HOMEBREW_UPDATE_FORCE" ||
 | 
				
			||||||
        -d "$HOMEBREW_LIBRARY/LinkedKegs" ||
 | 
					        -d "$HOMEBREW_LIBRARY/LinkedKegs" ||
 | 
				
			||||||
 | 
					        ! -f "$HOMEBREW_CACHE/all_commands_list.txt" ||
 | 
				
			||||||
        (-n "$HOMEBREW_DEVELOPER" && -z "$HOMEBREW_UPDATE_PREINSTALL") ]]
 | 
					        (-n "$HOMEBREW_DEVELOPER" && -z "$HOMEBREW_UPDATE_PREINSTALL") ]]
 | 
				
			||||||
  then
 | 
					  then
 | 
				
			||||||
    brew update-report "$@"
 | 
					    brew update-report "$@"
 | 
				
			||||||
 | 
				
			|||||||
@ -143,4 +143,21 @@ module Commands
 | 
				
			|||||||
            .select(&:file?)
 | 
					            .select(&:file?)
 | 
				
			||||||
            .sort
 | 
					            .sort
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def rebuild_internal_commands_completion_list
 | 
				
			||||||
 | 
					    cmds = internal_commands + internal_developer_commands + internal_commands_aliases
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    file = HOMEBREW_REPOSITORY/"completions/internal_commands_list.txt"
 | 
				
			||||||
 | 
					    file.delete if file.exist?
 | 
				
			||||||
 | 
					    file.write(cmds.sort.join("\n") + "\n")
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def rebuild_commands_completion_list
 | 
				
			||||||
 | 
					    # Ensure that the cache exists so we can build the commands list
 | 
				
			||||||
 | 
					    HOMEBREW_CACHE.mkpath
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    file = HOMEBREW_CACHE/"all_commands_list.txt"
 | 
				
			||||||
 | 
					    file.delete if file.exist?
 | 
				
			||||||
 | 
					    file.write(commands(aliases: true).sort.join("\n") + "\n")
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -155,7 +155,7 @@ module Homebrew
 | 
				
			|||||||
        if version_segments && Gem::Version.correct?(test_formula.version)
 | 
					        if version_segments && Gem::Version.correct?(test_formula.version)
 | 
				
			||||||
          test_formula_version_segments = Gem::Version.new(test_formula.version).segments
 | 
					          test_formula_version_segments = Gem::Version.new(test_formula.version).segments
 | 
				
			||||||
          if version_segments.length < test_formula_version_segments.length
 | 
					          if version_segments.length < test_formula_version_segments.length
 | 
				
			||||||
            odebug "Apply semantic versioning with #{test_formual_version_segments}"
 | 
					            odebug "Apply semantic versioning with #{test_formula_version_segments}"
 | 
				
			||||||
            break if version_segments == test_formula_version_segments.first(version_segments.length)
 | 
					            break if version_segments == test_formula_version_segments.first(version_segments.length)
 | 
				
			||||||
          end
 | 
					          end
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
 | 
				
			|||||||
@ -35,10 +35,11 @@ module Homebrew
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    odie "`brew man --link` is now done automatically by `brew update`." if args.link?
 | 
					    odie "`brew man --link` is now done automatically by `brew update`." if args.link?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Commands.rebuild_internal_commands_completion_list
 | 
				
			||||||
    regenerate_man_pages
 | 
					    regenerate_man_pages
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if system "git", "-C", HOMEBREW_REPOSITORY, "diff", "--quiet", "docs/Manpage.md", "manpages"
 | 
					    if system "git", "-C", HOMEBREW_REPOSITORY, "diff", "--quiet", "docs/Manpage.md", "manpages", "completions"
 | 
				
			||||||
      puts "No changes to manpage output detected."
 | 
					      puts "No changes to manpage or completions output detected."
 | 
				
			||||||
    elsif args.fail_if_changed?
 | 
					    elsif args.fail_if_changed?
 | 
				
			||||||
      Homebrew.failed = true
 | 
					      Homebrew.failed = true
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
				
			|||||||
@ -15,6 +15,10 @@ module Homebrew
 | 
				
			|||||||
      EOS
 | 
					      EOS
 | 
				
			||||||
      flag "--bintray-org=",
 | 
					      flag "--bintray-org=",
 | 
				
			||||||
           description: "Upload to the specified Bintray organisation (default: homebrew)."
 | 
					           description: "Upload to the specified Bintray organisation (default: homebrew)."
 | 
				
			||||||
 | 
					      flag "--bintray-repo=",
 | 
				
			||||||
 | 
					           description: "Upload to the specified Bintray repository (default: mirror)."
 | 
				
			||||||
 | 
					      switch "--no-publish",
 | 
				
			||||||
 | 
					             description: "Upload to Bintray, but don't publish."
 | 
				
			||||||
      switch :verbose
 | 
					      switch :verbose
 | 
				
			||||||
      switch :debug
 | 
					      switch :debug
 | 
				
			||||||
      hide_from_man_page!
 | 
					      hide_from_man_page!
 | 
				
			||||||
@ -26,37 +30,13 @@ module Homebrew
 | 
				
			|||||||
    mirror_args.parse
 | 
					    mirror_args.parse
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    bintray_org = args.bintray_org || "homebrew"
 | 
					    bintray_org = args.bintray_org || "homebrew"
 | 
				
			||||||
    bintray_repo = "mirror"
 | 
					    bintray_repo = args.bintray_repo || "mirror"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    bintray = Bintray.new(org: bintray_org)
 | 
					    bintray = Bintray.new(org: bintray_org)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    args.formulae.each do |f|
 | 
					    args.formulae.each do |formula|
 | 
				
			||||||
      bintray_package = Utils::Bottles::Bintray.package f.name
 | 
					      mirror_url = bintray.mirror_formula(formula, repo: bintray_repo, publish_package: !args.no_publish?)
 | 
				
			||||||
 | 
					      ohai "Mirrored #{formula.full_name} to #{mirror_url}!"
 | 
				
			||||||
      unless bintray.package_exists?(repo: bintray_repo, package: bintray_package)
 | 
					 | 
				
			||||||
        bintray.create_package repo: bintray_repo, package: bintray_package
 | 
					 | 
				
			||||||
      end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      downloader = f.downloader
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      downloader.fetch
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      filename = ERB::Util.url_encode(downloader.basename)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      destination_url = "https://dl.bintray.com/#{bintray_org}/#{bintray_repo}/#{filename}"
 | 
					 | 
				
			||||||
      ohai "Uploading to #{destination_url}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      version = ERB::Util.url_encode(f.pkg_version)
 | 
					 | 
				
			||||||
      bintray.upload(
 | 
					 | 
				
			||||||
        downloader.cached_location,
 | 
					 | 
				
			||||||
        repo:        bintray_repo,
 | 
					 | 
				
			||||||
        package:     bintray_package,
 | 
					 | 
				
			||||||
        version:     version,
 | 
					 | 
				
			||||||
        sha256:      f.stable.checksum,
 | 
					 | 
				
			||||||
        remote_file: filename,
 | 
					 | 
				
			||||||
      )
 | 
					 | 
				
			||||||
      bintray.publish(repo: bintray_repo, package: bintray_package, version: version)
 | 
					 | 
				
			||||||
      ohai "Mirrored #{filename}!"
 | 
					 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -41,6 +41,11 @@ module Homebrew
 | 
				
			|||||||
             description: "Upload to the specified Bintray organisation (default: homebrew)."
 | 
					             description: "Upload to the specified Bintray organisation (default: homebrew)."
 | 
				
			||||||
      flag   "--tap=",
 | 
					      flag   "--tap=",
 | 
				
			||||||
             description: "Target tap repository (default: homebrew/core)."
 | 
					             description: "Target tap repository (default: homebrew/core)."
 | 
				
			||||||
 | 
					      flag   "--root-url=",
 | 
				
			||||||
 | 
					             description: "Use the specified <URL> as the root of the bottle's URL instead of Homebrew's default."
 | 
				
			||||||
 | 
					      flag   "--bintray-mirror=",
 | 
				
			||||||
 | 
					             description: "Use the specified Bintray repository to automatically mirror stable URLs "\
 | 
				
			||||||
 | 
					                          "defined in the formulae (default: mirror)"
 | 
				
			||||||
      switch :verbose
 | 
					      switch :verbose
 | 
				
			||||||
      switch :debug
 | 
					      switch :debug
 | 
				
			||||||
      min_named 1
 | 
					      min_named 1
 | 
				
			||||||
@ -128,6 +133,32 @@ module Homebrew
 | 
				
			|||||||
  def formulae_need_bottles?(tap, original_commit)
 | 
					  def formulae_need_bottles?(tap, original_commit)
 | 
				
			||||||
    return if Homebrew.args.dry_run?
 | 
					    return if Homebrew.args.dry_run?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    changed_formulae(tap, original_commit).any? do |f|
 | 
				
			||||||
 | 
					      !f.bottle_unneeded? && !f.bottle_disabled?
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def mirror_formulae(tap, original_commit, publish: true, org:, repo:)
 | 
				
			||||||
 | 
					    changed_formulae(tap, original_commit).select do |f|
 | 
				
			||||||
 | 
					      stable_urls = [f.stable.url] + f.stable.mirrors
 | 
				
			||||||
 | 
					      stable_urls.grep(%r{^https://dl.bintray.com/#{org}/#{repo}/}) do |mirror_url|
 | 
				
			||||||
 | 
					        if Homebrew.args.dry_run?
 | 
				
			||||||
 | 
					          puts "brew mirror #{f.full_name}"
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					          odebug "Mirroring #{mirror_url}"
 | 
				
			||||||
 | 
					          mirror_args = ["mirror", f.full_name]
 | 
				
			||||||
 | 
					          mirror_args << "--debug" if Homebrew.args.debug?
 | 
				
			||||||
 | 
					          mirror_args << "--verbose" if Homebrew.args.verbose?
 | 
				
			||||||
 | 
					          mirror_args << "--bintray-org=#{org}" if org
 | 
				
			||||||
 | 
					          mirror_args << "--bintray-repo=#{repo}" if repo
 | 
				
			||||||
 | 
					          mirror_args << "--no-publish" unless publish
 | 
				
			||||||
 | 
					          system HOMEBREW_BREW_FILE, *mirror_args
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def changed_formulae(tap, original_commit)
 | 
				
			||||||
    if Homebrew::EnvConfig.disable_load_formula?
 | 
					    if Homebrew::EnvConfig.disable_load_formula?
 | 
				
			||||||
      opoo "Can't check if updated bottles are necessary as formula loading is disabled!"
 | 
					      opoo "Can't check if updated bottles are necessary as formula loading is disabled!"
 | 
				
			||||||
      return
 | 
					      return
 | 
				
			||||||
@ -136,19 +167,17 @@ module Homebrew
 | 
				
			|||||||
    Utils.popen_read("git", "-C", tap.path, "diff-tree",
 | 
					    Utils.popen_read("git", "-C", tap.path, "diff-tree",
 | 
				
			||||||
                     "-r", "--name-only", "--diff-filter=AM",
 | 
					                     "-r", "--name-only", "--diff-filter=AM",
 | 
				
			||||||
                     original_commit, "HEAD", "--", tap.formula_dir)
 | 
					                     original_commit, "HEAD", "--", tap.formula_dir)
 | 
				
			||||||
         .lines.each do |line|
 | 
					         .lines.map do |line|
 | 
				
			||||||
      next unless line.end_with? ".rb\n"
 | 
					      next unless line.end_with? ".rb\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      name = "#{tap.name}/#{File.basename(line.chomp, ".rb")}"
 | 
					      name = "#{tap.name}/#{File.basename(line.chomp, ".rb")}"
 | 
				
			||||||
      begin
 | 
					      begin
 | 
				
			||||||
        f = Formula[name]
 | 
					        Formula[name]
 | 
				
			||||||
      rescue Exception # rubocop:disable Lint/RescueException
 | 
					      rescue Exception # rubocop:disable Lint/RescueException
 | 
				
			||||||
        # Make sure we catch syntax errors.
 | 
					        # Make sure we catch syntax errors.
 | 
				
			||||||
        next
 | 
					        next
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
      return true if !f.bottle_unneeded? && !f.bottle_disabled?
 | 
					    end.compact
 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
    nil
 | 
					 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def download_artifact(url, dir, pr)
 | 
					  def download_artifact(url, dir, pr)
 | 
				
			||||||
@ -181,12 +210,11 @@ module Homebrew
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    if bintray_user.blank? || bintray_key.blank?
 | 
					    if bintray_user.blank? || bintray_key.blank?
 | 
				
			||||||
      odie "Missing HOMEBREW_BINTRAY_USER or HOMEBREW_BINTRAY_KEY variables!" if !args.dry_run? && !args.no_upload?
 | 
					      odie "Missing HOMEBREW_BINTRAY_USER or HOMEBREW_BINTRAY_KEY variables!" if !args.dry_run? && !args.no_upload?
 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
      bintray = Bintray.new(user: bintray_user, key: bintray_key, org: bintray_org)
 | 
					 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    workflow = args.workflow || "tests.yml"
 | 
					    workflow = args.workflow || "tests.yml"
 | 
				
			||||||
    artifact = args.artifact || "bottles"
 | 
					    artifact = args.artifact || "bottles"
 | 
				
			||||||
 | 
					    mirror_repo = args.bintray_mirror || "mirror"
 | 
				
			||||||
    tap = Tap.fetch(args.tap || CoreTap.instance.name)
 | 
					    tap = Tap.fetch(args.tap || CoreTap.instance.name)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    setup_git_environment!
 | 
					    setup_git_environment!
 | 
				
			||||||
@ -206,6 +234,10 @@ module Homebrew
 | 
				
			|||||||
          cherry_pick_pr! pr, path: tap.path
 | 
					          cherry_pick_pr! pr, path: tap.path
 | 
				
			||||||
          signoff! pr, path: tap.path unless args.clean?
 | 
					          signoff! pr, path: tap.path unless args.clean?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          unless args.no_upload?
 | 
				
			||||||
 | 
					            mirror_formulae(tap, original_commit, org: bintray_org, repo: mirror_repo, publish: !args.no_publish?)
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          unless formulae_need_bottles? tap, original_commit
 | 
					          unless formulae_need_bottles? tap, original_commit
 | 
				
			||||||
            ohai "Skipping artifacts for ##{pr} as the formulae don't need bottles"
 | 
					            ohai "Skipping artifacts for ##{pr} as the formulae don't need bottles"
 | 
				
			||||||
            next
 | 
					            next
 | 
				
			||||||
@ -214,19 +246,16 @@ module Homebrew
 | 
				
			|||||||
          url = GitHub.get_artifact_url(user, repo, pr, workflow_id: workflow, artifact_name: artifact)
 | 
					          url = GitHub.get_artifact_url(user, repo, pr, workflow_id: workflow, artifact_name: artifact)
 | 
				
			||||||
          download_artifact(url, dir, pr)
 | 
					          download_artifact(url, dir, pr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          if Homebrew.args.dry_run?
 | 
					 | 
				
			||||||
            puts "brew bottle --merge --write #{Dir["*.json"].join " "}"
 | 
					 | 
				
			||||||
          else
 | 
					 | 
				
			||||||
            quiet_system "#{HOMEBREW_PREFIX}/bin/brew", "bottle", "--merge", "--write", *Dir["*.json"]
 | 
					 | 
				
			||||||
          end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          next if args.no_upload?
 | 
					          next if args.no_upload?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          if Homebrew.args.dry_run?
 | 
					          upload_args = ["pr-upload"]
 | 
				
			||||||
            puts "Upload bottles described by these JSON files to Bintray:\n  #{Dir["*.json"].join("\n  ")}"
 | 
					          upload_args << "--debug" if Homebrew.args.debug?
 | 
				
			||||||
          else
 | 
					          upload_args << "--verbose" if Homebrew.args.verbose?
 | 
				
			||||||
            bintray.upload_bottle_json Dir["*.json"], publish_package: !args.no_publish?
 | 
					          upload_args << "--no-publish" if args.no_publish?
 | 
				
			||||||
          end
 | 
					          upload_args << "--dry-run" if args.dry_run?
 | 
				
			||||||
 | 
					          upload_args << "--root_url=#{args.root_url}" if args.root_url
 | 
				
			||||||
 | 
					          upload_args << "--bintray-org=#{bintray_org}"
 | 
				
			||||||
 | 
					          system HOMEBREW_BREW_FILE, *upload_args
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
				
			|||||||
@ -21,6 +21,8 @@ module Homebrew
 | 
				
			|||||||
           description: "Upload to the specified Bintray organisation (default: homebrew)."
 | 
					           description: "Upload to the specified Bintray organisation (default: homebrew)."
 | 
				
			||||||
      flag "--root-url=",
 | 
					      flag "--root-url=",
 | 
				
			||||||
           description: "Use the specified <URL> as the root of the bottle's URL instead of Homebrew's default."
 | 
					           description: "Use the specified <URL> as the root of the bottle's URL instead of Homebrew's default."
 | 
				
			||||||
 | 
					      switch :verbose
 | 
				
			||||||
 | 
					      switch :debug
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -31,6 +33,8 @@ module Homebrew
 | 
				
			|||||||
    bintray = Bintray.new(org: bintray_org)
 | 
					    bintray = Bintray.new(org: bintray_org)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    bottle_args = ["bottle", "--merge", "--write"]
 | 
					    bottle_args = ["bottle", "--merge", "--write"]
 | 
				
			||||||
 | 
					    bottle_args << "--verbose" if args.verbose?
 | 
				
			||||||
 | 
					    bottle_args << "--debug" if args.debug?
 | 
				
			||||||
    bottle_args << "--root-url=#{args.root_url}" if args.root_url
 | 
					    bottle_args << "--root-url=#{args.root_url}" if args.root_url
 | 
				
			||||||
    odie "No JSON files found in the current working directory" if Dir["*.json"].empty?
 | 
					    odie "No JSON files found in the current working directory" if Dir["*.json"].empty?
 | 
				
			||||||
    bottle_args += Dir["*.json"]
 | 
					    bottle_args += Dir["*.json"]
 | 
				
			||||||
 | 
				
			|||||||
@ -614,7 +614,7 @@ class GitDownloadStrategy < VCSDownloadStrategy
 | 
				
			|||||||
    super
 | 
					    super
 | 
				
			||||||
    @ref_type ||= :branch
 | 
					    @ref_type ||= :branch
 | 
				
			||||||
    @ref ||= "master"
 | 
					    @ref ||= "master"
 | 
				
			||||||
    @shallow = meta.fetch(:shallow) { true }
 | 
					    @shallow = meta.fetch(:shallow, true)
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def source_modified_time
 | 
					  def source_modified_time
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,12 @@
 | 
				
			|||||||
# frozen_string_literal: true
 | 
					# frozen_string_literal: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Formula
 | 
					class Formula
 | 
				
			||||||
 | 
					  undef shared_library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def shared_library(name, version = nil)
 | 
				
			||||||
 | 
					    "#{name}.so#{"." unless version.nil?}#{version}"
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  class << self
 | 
					  class << self
 | 
				
			||||||
    undef on_linux
 | 
					    undef on_linux
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,8 @@ module Homebrew
 | 
				
			|||||||
    ].freeze
 | 
					    ].freeze
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def check_cpu
 | 
					    def check_cpu
 | 
				
			||||||
      return if (Hardware::CPU.intel? && Hardware::CPU.is_64_bit?) || Hardware::CPU.arm?
 | 
					      return if Hardware::CPU.intel? && Hardware::CPU.is_64_bit?
 | 
				
			||||||
 | 
					      return if Hardware::CPU.arm?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      message = "Sorry, Homebrew does not support your computer's CPU architecture!"
 | 
					      message = "Sorry, Homebrew does not support your computer's CPU architecture!"
 | 
				
			||||||
      if Hardware::CPU.ppc64le?
 | 
					      if Hardware::CPU.ppc64le?
 | 
				
			||||||
 | 
				
			|||||||
@ -52,7 +52,7 @@ module Stdenv
 | 
				
			|||||||
  def remove_macosxsdk(version = nil)
 | 
					  def remove_macosxsdk(version = nil)
 | 
				
			||||||
    # Clear all lib and include dirs from CFLAGS, CPPFLAGS, LDFLAGS that were
 | 
					    # Clear all lib and include dirs from CFLAGS, CPPFLAGS, LDFLAGS that were
 | 
				
			||||||
    # previously added by macosxsdk
 | 
					    # previously added by macosxsdk
 | 
				
			||||||
    remove_from_cflags(/ ?-mmacosx-version-min=10\.\d+/)
 | 
					    remove_from_cflags(/ ?-mmacosx-version-min=\d+\.\d+/)
 | 
				
			||||||
    delete("CPATH")
 | 
					    delete("CPATH")
 | 
				
			||||||
    remove "LDFLAGS", "-L#{HOMEBREW_PREFIX}/lib"
 | 
					    remove "LDFLAGS", "-L#{HOMEBREW_PREFIX}/lib"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,7 @@
 | 
				
			|||||||
# frozen_string_literal: true
 | 
					# frozen_string_literal: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					require "macho"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module Hardware
 | 
					module Hardware
 | 
				
			||||||
  class CPU
 | 
					  class CPU
 | 
				
			||||||
    class << self
 | 
					    class << self
 | 
				
			||||||
@ -9,14 +11,18 @@ module Hardware
 | 
				
			|||||||
      # Look in <mach/machine.h> for decoding info.
 | 
					      # Look in <mach/machine.h> for decoding info.
 | 
				
			||||||
      def type
 | 
					      def type
 | 
				
			||||||
        case sysctl_int("hw.cputype")
 | 
					        case sysctl_int("hw.cputype")
 | 
				
			||||||
        when 7
 | 
					        when MachO::Headers::CPU_TYPE_I386
 | 
				
			||||||
          :intel
 | 
					          :intel
 | 
				
			||||||
 | 
					        when MachO::Headers::CPU_TYPE_ARM64
 | 
				
			||||||
 | 
					          :arm
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
          :dunno
 | 
					          :dunno
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      def family
 | 
					      def family
 | 
				
			||||||
 | 
					        return :dunno if arm?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        case sysctl_int("hw.cpufamily")
 | 
					        case sysctl_int("hw.cpufamily")
 | 
				
			||||||
        when 0x73d67300 # Yonah: Core Solo/Duo
 | 
					        when 0x73d67300 # Yonah: Core Solo/Duo
 | 
				
			||||||
          :core
 | 
					          :core
 | 
				
			||||||
 | 
				
			|||||||
@ -6,7 +6,9 @@ module Utils
 | 
				
			|||||||
      undef tag
 | 
					      undef tag
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      def tag
 | 
					      def tag
 | 
				
			||||||
        MacOS.version.to_sym
 | 
					        tag = MacOS.version.to_sym
 | 
				
			||||||
 | 
					        tag = "#{tag}_arm".to_sym if Hardware::CPU.arm?
 | 
				
			||||||
 | 
					        tag
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -346,13 +346,17 @@ class Pathname
 | 
				
			|||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Writes an exec script that sets environment variables
 | 
					  # Writes an exec script that sets environment variables
 | 
				
			||||||
  def write_env_script(target, env)
 | 
					  def write_env_script(target, args, env = nil)
 | 
				
			||||||
 | 
					    unless env
 | 
				
			||||||
 | 
					      env = args
 | 
				
			||||||
 | 
					      args = nil
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
    env_export = +""
 | 
					    env_export = +""
 | 
				
			||||||
    env.each { |key, value| env_export << "#{key}=\"#{value}\" " }
 | 
					    env.each { |key, value| env_export << "#{key}=\"#{value}\" " }
 | 
				
			||||||
    dirname.mkpath
 | 
					    dirname.mkpath
 | 
				
			||||||
    write <<~SH
 | 
					    write <<~SH
 | 
				
			||||||
      #!/bin/bash
 | 
					      #!/bin/bash
 | 
				
			||||||
      #{env_export}exec "#{target}" "$@"
 | 
					      #{env_export}exec "#{target}" #{args} "$@"
 | 
				
			||||||
    SH
 | 
					    SH
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -370,7 +374,7 @@ class Pathname
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  # Writes an exec script that invokes a Java jar
 | 
					  # Writes an exec script that invokes a Java jar
 | 
				
			||||||
  def write_jar_script(target_jar, script_name, java_opts = "", java_version: nil)
 | 
					  def write_jar_script(target_jar, script_name, java_opts = "", java_version: nil)
 | 
				
			||||||
    (self/script_name).write_env_script "java #{java_opts} -jar #{target_jar}",
 | 
					    (self/script_name).write_env_script "java", "#{java_opts} -jar \"#{target_jar}\"",
 | 
				
			||||||
                                        Language::Java.overridable_java_home_env(java_version)
 | 
					                                        Language::Java.overridable_java_home_env(java_version)
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1357,6 +1357,11 @@ class Formula
 | 
				
			|||||||
    "#<Formula #{name} (#{active_spec_sym}) #{path}>"
 | 
					    "#<Formula #{name} (#{active_spec_sym}) #{path}>"
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Standard parameters for cargo builds.
 | 
				
			||||||
 | 
					  def std_cargo_args
 | 
				
			||||||
 | 
					    ["--locked", "--root", prefix, "--path", "."]
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Standard parameters for CMake builds.
 | 
					  # Standard parameters for CMake builds.
 | 
				
			||||||
  # Setting `CMAKE_FIND_FRAMEWORK` to "LAST" tells CMake to search for our
 | 
					  # Setting `CMAKE_FIND_FRAMEWORK` to "LAST" tells CMake to search for our
 | 
				
			||||||
  # libraries before trying to utilize Frameworks, many of which will be from
 | 
					  # libraries before trying to utilize Frameworks, many of which will be from
 | 
				
			||||||
@ -1405,6 +1410,10 @@ class Formula
 | 
				
			|||||||
    ["--prefix=#{prefix}", "--libdir=#{lib}"]
 | 
					    ["--prefix=#{prefix}", "--libdir=#{lib}"]
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def shared_library(name, version = nil)
 | 
				
			||||||
 | 
					    "#{name}.#{version}#{"." unless version.nil?}dylib"
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # an array of all core {Formula} names
 | 
					  # an array of all core {Formula} names
 | 
				
			||||||
  # @private
 | 
					  # @private
 | 
				
			||||||
  def self.core_names
 | 
					  def self.core_names
 | 
				
			||||||
@ -1934,6 +1943,8 @@ class Formula
 | 
				
			|||||||
      case cmd
 | 
					      case cmd
 | 
				
			||||||
      when "./configure"
 | 
					      when "./configure"
 | 
				
			||||||
        pretty_args -= %w[--disable-dependency-tracking --disable-debug --disable-silent-rules]
 | 
					        pretty_args -= %w[--disable-dependency-tracking --disable-debug --disable-silent-rules]
 | 
				
			||||||
 | 
					      when "cargo"
 | 
				
			||||||
 | 
					        pretty_args -= std_cargo_args
 | 
				
			||||||
      when "cmake"
 | 
					      when "cmake"
 | 
				
			||||||
        pretty_args -= std_cmake_args
 | 
					        pretty_args -= std_cmake_args
 | 
				
			||||||
      when "go"
 | 
					      when "go"
 | 
				
			||||||
@ -2146,6 +2157,7 @@ class Formula
 | 
				
			|||||||
        stage_env[:_JAVA_OPTIONS] =
 | 
					        stage_env[:_JAVA_OPTIONS] =
 | 
				
			||||||
          "#{ENV["_JAVA_OPTIONS"]&.+(" ")}-Duser.home=#{HOMEBREW_CACHE}/java_cache"
 | 
					          "#{ENV["_JAVA_OPTIONS"]&.+(" ")}-Duser.home=#{HOMEBREW_CACHE}/java_cache"
 | 
				
			||||||
        stage_env[:GOCACHE] = "#{HOMEBREW_CACHE}/go_cache"
 | 
					        stage_env[:GOCACHE] = "#{HOMEBREW_CACHE}/go_cache"
 | 
				
			||||||
 | 
					        stage_env[:GOPATH] = "#{HOMEBREW_CACHE}/go_mod_cache"
 | 
				
			||||||
        stage_env[:CARGO_HOME] = "#{HOMEBREW_CACHE}/cargo_cache"
 | 
					        stage_env[:CARGO_HOME] = "#{HOMEBREW_CACHE}/cargo_cache"
 | 
				
			||||||
        stage_env[:CURL_HOME] = ENV["CURL_HOME"] || ENV["HOME"]
 | 
					        stage_env[:CURL_HOME] = ENV["CURL_HOME"] || ENV["HOME"]
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
				
			|||||||
@ -176,7 +176,7 @@ module Homebrew
 | 
				
			|||||||
            bin.install libexec/"bin/\#{name}"
 | 
					            bin.install libexec/"bin/\#{name}"
 | 
				
			||||||
            bin.env_script_all_files(libexec/"bin", :GEM_HOME => ENV["GEM_HOME"])
 | 
					            bin.env_script_all_files(libexec/"bin", :GEM_HOME => ENV["GEM_HOME"])
 | 
				
			||||||
        <% elsif  mode == :rust %>
 | 
					        <% elsif  mode == :rust %>
 | 
				
			||||||
            system "cargo", "install", "--locked", "--root", prefix, "--path", "."
 | 
					            system "cargo", "install", *std_cargo_args
 | 
				
			||||||
        <% else  %>
 | 
					        <% else  %>
 | 
				
			||||||
            # Remove unrecognized options if warned by configure
 | 
					            # Remove unrecognized options if warned by configure
 | 
				
			||||||
            system "./configure", "--disable-debug",
 | 
					            system "./configure", "--disable-debug",
 | 
				
			||||||
 | 
				
			|||||||
@ -13,7 +13,10 @@ module Homebrew
 | 
				
			|||||||
      return if Hardware::CPU.intel? && Hardware::CPU.is_64_bit?
 | 
					      return if Hardware::CPU.intel? && Hardware::CPU.is_64_bit?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      message = "Sorry, Homebrew does not support your computer's CPU architecture!"
 | 
					      message = "Sorry, Homebrew does not support your computer's CPU architecture!"
 | 
				
			||||||
      if Hardware::CPU.ppc?
 | 
					      if Hardware::CPU.arm?
 | 
				
			||||||
 | 
					        opoo message
 | 
				
			||||||
 | 
					        return
 | 
				
			||||||
 | 
					      elsif Hardware::CPU.ppc?
 | 
				
			||||||
        message += <<~EOS
 | 
					        message += <<~EOS
 | 
				
			||||||
          For PowerPC Mac (PPC32/PPC64BE) support, see:
 | 
					          For PowerPC Mac (PPC32/PPC64BE) support, see:
 | 
				
			||||||
            #{Formatter.url("https://github.com/mistydemeo/tigerbrew")}
 | 
					            #{Formatter.url("https://github.com/mistydemeo/tigerbrew")}
 | 
				
			||||||
 | 
				
			|||||||
@ -3,6 +3,7 @@
 | 
				
			|||||||
require "keg"
 | 
					require "keg"
 | 
				
			||||||
require "formula"
 | 
					require "formula"
 | 
				
			||||||
require "linkage_cache_store"
 | 
					require "linkage_cache_store"
 | 
				
			||||||
 | 
					require "fiddle"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class LinkageChecker
 | 
					class LinkageChecker
 | 
				
			||||||
  attr_reader :undeclared_deps
 | 
					  attr_reader :undeclared_deps
 | 
				
			||||||
@ -125,6 +126,11 @@ class LinkageChecker
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
          if (dep = dylib_to_dep(dylib))
 | 
					          if (dep = dylib_to_dep(dylib))
 | 
				
			||||||
            @broken_deps[dep] |= [dylib]
 | 
					            @broken_deps[dep] |= [dylib]
 | 
				
			||||||
 | 
					          elsif MacOS.version >= :big_sur && dylib_found_via_dlopen(dylib)
 | 
				
			||||||
 | 
					            # If we cannot associate the dylib with a dependency, then it may be a system library.
 | 
				
			||||||
 | 
					            # In macOS Big Sur and later, system libraries do not exist on-disk and instead exist in a cache.
 | 
				
			||||||
 | 
					            # If dlopen finds the dylib, then the linkage is not broken.
 | 
				
			||||||
 | 
					            @system_dylibs << dylib
 | 
				
			||||||
          else
 | 
					          else
 | 
				
			||||||
            @broken_dylibs << dylib
 | 
					            @broken_dylibs << dylib
 | 
				
			||||||
          end
 | 
					          end
 | 
				
			||||||
@ -151,6 +157,13 @@ class LinkageChecker
 | 
				
			|||||||
  end
 | 
					  end
 | 
				
			||||||
  alias generic_check_dylibs check_dylibs
 | 
					  alias generic_check_dylibs check_dylibs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def dylib_found_via_dlopen(dylib)
 | 
				
			||||||
 | 
					    Fiddle.dlopen(dylib).close
 | 
				
			||||||
 | 
					    true
 | 
				
			||||||
 | 
					  rescue Fiddle::DLError
 | 
				
			||||||
 | 
					    false
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def check_formula_deps
 | 
					  def check_formula_deps
 | 
				
			||||||
    filter_out = proc do |dep|
 | 
					    filter_out = proc do |dep|
 | 
				
			||||||
      next true if dep.build?
 | 
					      next true if dep.build?
 | 
				
			||||||
 | 
				
			|||||||
@ -27,7 +27,7 @@ module OS
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    # rubocop:disable Naming/ConstantName
 | 
					    # rubocop:disable Naming/ConstantName
 | 
				
			||||||
    # rubocop:disable Style/MutableConstant
 | 
					    # rubocop:disable Style/MutableConstant
 | 
				
			||||||
    ::MacOS = self
 | 
					    ::MacOS = OS::Mac
 | 
				
			||||||
    # rubocop:enable Naming/ConstantName
 | 
					    # rubocop:enable Naming/ConstantName
 | 
				
			||||||
    # rubocop:enable Style/MutableConstant
 | 
					    # rubocop:enable Style/MutableConstant
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -74,7 +74,14 @@ module ELFShim
 | 
				
			|||||||
    @with_interpreter = if binary_executable?
 | 
					    @with_interpreter = if binary_executable?
 | 
				
			||||||
      true
 | 
					      true
 | 
				
			||||||
    elsif dylib?
 | 
					    elsif dylib?
 | 
				
			||||||
      if which "readelf"
 | 
					      if HOMEBREW_PATCHELF_RB
 | 
				
			||||||
 | 
					        begin
 | 
				
			||||||
 | 
					          patchelf_patcher.interpreter.present?
 | 
				
			||||||
 | 
					        rescue PatchELF::PatchError => e
 | 
				
			||||||
 | 
					          opoo e unless e.to_s.start_with? "No interpreter found"
 | 
				
			||||||
 | 
					          false
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      elsif which "readelf"
 | 
				
			||||||
        Utils.popen_read("readelf", "-l", to_path).include?(" INTERP ")
 | 
					        Utils.popen_read("readelf", "-l", to_path).include?(" INTERP ")
 | 
				
			||||||
      elsif which "file"
 | 
					      elsif which "file"
 | 
				
			||||||
        Utils.popen_read("file", "-L", "-b", to_path).include?(" interpreter ")
 | 
					        Utils.popen_read("file", "-L", "-b", to_path).include?(" interpreter ")
 | 
				
			||||||
@ -89,7 +96,9 @@ module ELFShim
 | 
				
			|||||||
  def dynamic_elf?
 | 
					  def dynamic_elf?
 | 
				
			||||||
    return @dynamic_elf if defined? @dynamic_elf
 | 
					    return @dynamic_elf if defined? @dynamic_elf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @dynamic_elf = if which "readelf"
 | 
					    @dynamic_elf = if HOMEBREW_PATCHELF_RB
 | 
				
			||||||
 | 
					      patchelf_patcher.instance_variable_get(:@elf).segment_by_type(:DYNAMIC).present?
 | 
				
			||||||
 | 
					    elsif which "readelf"
 | 
				
			||||||
      Utils.popen_read("readelf", "-l", to_path).include?(" DYNAMIC ")
 | 
					      Utils.popen_read("readelf", "-l", to_path).include?(" DYNAMIC ")
 | 
				
			||||||
    elsif which "file"
 | 
					    elsif which "file"
 | 
				
			||||||
      !Utils.popen_read("file", "-L", "-b", to_path)[/dynamic|shared/].nil?
 | 
					      !Utils.popen_read("file", "-L", "-b", to_path)[/dynamic|shared/].nil?
 | 
				
			||||||
@ -127,7 +136,9 @@ module ELFShim
 | 
				
			|||||||
    private
 | 
					    private
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def needed_libraries(path)
 | 
					    def needed_libraries(path)
 | 
				
			||||||
      if DevelopmentTools.locate "readelf"
 | 
					      if HOMEBREW_PATCHELF_RB
 | 
				
			||||||
 | 
					        needed_libraries_using_patchelf_rb path
 | 
				
			||||||
 | 
					      elsif DevelopmentTools.locate "readelf"
 | 
				
			||||||
        needed_libraries_using_readelf path
 | 
					        needed_libraries_using_readelf path
 | 
				
			||||||
      elsif DevelopmentTools.locate "patchelf"
 | 
					      elsif DevelopmentTools.locate "patchelf"
 | 
				
			||||||
        needed_libraries_using_patchelf path
 | 
					        needed_libraries_using_patchelf path
 | 
				
			||||||
@ -138,6 +149,25 @@ module ELFShim
 | 
				
			|||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def needed_libraries_using_patchelf_rb(path)
 | 
				
			||||||
 | 
					      patcher = path.patchelf_patcher
 | 
				
			||||||
 | 
					      return [nil, []] unless patcher
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      soname = begin
 | 
				
			||||||
 | 
					        patcher.soname
 | 
				
			||||||
 | 
					      rescue PatchELF::PatchError => e
 | 
				
			||||||
 | 
					        opoo e unless e.to_s.start_with? "Entry DT_SONAME not found, not a shared library?"
 | 
				
			||||||
 | 
					        nil
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					      needed = begin
 | 
				
			||||||
 | 
					        patcher.needed
 | 
				
			||||||
 | 
					      rescue PatchELF::PatchError => e
 | 
				
			||||||
 | 
					        opoo e
 | 
				
			||||||
 | 
					        []
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					      [soname, needed]
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def needed_libraries_using_patchelf(path)
 | 
					    def needed_libraries_using_patchelf(path)
 | 
				
			||||||
      return [nil, []] unless path.dynamic_elf?
 | 
					      return [nil, []] unless path.dynamic_elf?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -172,6 +202,16 @@ module ELFShim
 | 
				
			|||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def patchelf_patcher
 | 
				
			||||||
 | 
					    return unless HOMEBREW_PATCHELF_RB
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @patchelf_patcher ||= begin
 | 
				
			||||||
 | 
					      Homebrew.install_bundler_gems!
 | 
				
			||||||
 | 
					      require "patchelf"
 | 
				
			||||||
 | 
					      PatchELF::Patcher.new to_s, logging: false
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def metadata
 | 
					  def metadata
 | 
				
			||||||
    @metadata ||= Metadata.new(self)
 | 
					    @metadata ||= Metadata.new(self)
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,8 @@
 | 
				
			|||||||
# frozen_string_literal: true
 | 
					# frozen_string_literal: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# enables experimental readelf.rb, patchelf support.
 | 
				
			||||||
 | 
					HOMEBREW_PATCHELF_RB = ENV["HOMEBREW_PATCHELF_RB"].present?.freeze
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module Homebrew
 | 
					module Homebrew
 | 
				
			||||||
  DEFAULT_PREFIX ||= if Homebrew::EnvConfig.force_homebrew_on_linux?
 | 
					  DEFAULT_PREFIX ||= if Homebrew::EnvConfig.force_homebrew_on_linux?
 | 
				
			||||||
    HOMEBREW_DEFAULT_PREFIX
 | 
					    HOMEBREW_DEFAULT_PREFIX
 | 
				
			||||||
 | 
				
			|||||||
@ -12,7 +12,7 @@ module OS
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    # rubocop:disable Naming/ConstantName
 | 
					    # rubocop:disable Naming/ConstantName
 | 
				
			||||||
    # rubocop:disable Style/MutableConstant
 | 
					    # rubocop:disable Style/MutableConstant
 | 
				
			||||||
    ::MacOS = self
 | 
					    ::MacOS = OS::Mac
 | 
				
			||||||
    # rubocop:enable Naming/ConstantName
 | 
					    # rubocop:enable Naming/ConstantName
 | 
				
			||||||
    # rubocop:enable Style/MutableConstant
 | 
					    # rubocop:enable Style/MutableConstant
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -21,7 +21,7 @@ module OS
 | 
				
			|||||||
    # This can be compared to numerics, strings, or symbols
 | 
					    # This can be compared to numerics, strings, or symbols
 | 
				
			||||||
    # using the standard Ruby Comparable methods.
 | 
					    # using the standard Ruby Comparable methods.
 | 
				
			||||||
    def version
 | 
					    def version
 | 
				
			||||||
      @version ||= Version.new(full_version.to_s[/10\.\d+/])
 | 
					      @version ||= Version.new(full_version.to_s[/^\d+\.\d+/])
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # This can be compared to numerics, strings, or symbols
 | 
					    # This can be compared to numerics, strings, or symbols
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,7 @@ libdir=${exec_prefix}/lib
 | 
				
			|||||||
includedir=${prefix}/include
 | 
					includedir=${prefix}/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Name: expat
 | 
					Name: expat
 | 
				
			||||||
Version: 2.2.6
 | 
					Version: 2.2.8
 | 
				
			||||||
Description: expat XML parser
 | 
					Description: expat XML parser
 | 
				
			||||||
URL: http://www.libexpat.org
 | 
					URL: http://www.libexpat.org
 | 
				
			||||||
Libs: -L${libdir} -lexpat
 | 
					Libs: -L${libdir} -lexpat
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										12
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/expat.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/expat.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX10.16.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					includedir=${prefix}/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: expat
 | 
				
			||||||
 | 
					Version: 2.2.8
 | 
				
			||||||
 | 
					Description: expat XML parser
 | 
				
			||||||
 | 
					URL: http://www.libexpat.org
 | 
				
			||||||
 | 
					Libs: -L${libdir} -lexpat
 | 
				
			||||||
 | 
					Cflags:
 | 
				
			||||||
							
								
								
									
										40
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/libcurl.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/libcurl.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					#***************************************************************************
 | 
				
			||||||
 | 
					#                                  _   _ ____  _
 | 
				
			||||||
 | 
					#  Project                     ___| | | |  _ \| |
 | 
				
			||||||
 | 
					#                             / __| | | | |_) | |
 | 
				
			||||||
 | 
					#                            | (__| |_| |  _ <| |___
 | 
				
			||||||
 | 
					#                             \___|\___/|_| \_\_____|
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Copyright (C) 2001 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This software is licensed as described in the file COPYING, which
 | 
				
			||||||
 | 
					# you should have received as part of this distribution. The terms
 | 
				
			||||||
 | 
					# are also available at https://curl.haxx.se/docs/copyright.html.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# You may opt to use, copy, modify, merge, publish, distribute and/or sell
 | 
				
			||||||
 | 
					# copies of the Software, and permit persons to whom the Software is
 | 
				
			||||||
 | 
					# furnished to do so, under the terms of the COPYING file.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
 | 
				
			||||||
 | 
					# KIND, either express or implied.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This should most probably benefit from getting a "Requires:" field added
 | 
				
			||||||
 | 
					# dynamically by configure.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX10.16.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					includedir=${prefix}/include
 | 
				
			||||||
 | 
					supported_protocols="DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS LDAP LDAPS POP3 POP3S RTSP SMB SMBS SMTP SMTPS TELNET TFTP"
 | 
				
			||||||
 | 
					supported_features="AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO MultiSSL NTLM NTLM_WB SSL libz HTTP2 UnixSockets HTTPS-proxy"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: libcurl
 | 
				
			||||||
 | 
					URL: https://curl.haxx.se/
 | 
				
			||||||
 | 
					Description: Library to transfer files with ftp, http, etc.
 | 
				
			||||||
 | 
					Version: 7.64.1
 | 
				
			||||||
 | 
					Libs: -L${libdir} -lcurl
 | 
				
			||||||
 | 
					Libs.private: -lldap -lz
 | 
				
			||||||
 | 
					Cflags:
 | 
				
			||||||
							
								
								
									
										12
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/libedit.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/libedit.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX10.16.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					includedir=${prefix}/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: libedit
 | 
				
			||||||
 | 
					Description: command line editor library provides generic line editing, history, and tokenization functions.
 | 
				
			||||||
 | 
					Version: 3.0
 | 
				
			||||||
 | 
					Requires:
 | 
				
			||||||
 | 
					Libs: -L${libdir} -ledit
 | 
				
			||||||
 | 
					Cflags: -I${includedir}/editline
 | 
				
			||||||
							
								
								
									
										13
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/libexslt.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/libexslt.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX10.16.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					includedir=${prefix}/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: libexslt
 | 
				
			||||||
 | 
					Version: 0.8.17
 | 
				
			||||||
 | 
					Description: EXSLT Extension library
 | 
				
			||||||
 | 
					Requires: libxml-2.0
 | 
				
			||||||
 | 
					Libs: -L${libdir} -lexslt -lxslt  -lxml2 -lz -lpthread -licucore -lm
 | 
				
			||||||
 | 
					Cflags:
 | 
				
			||||||
							
								
								
									
										12
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/libffi.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/libffi.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX10.16.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					toolexeclibdir=${libdir}
 | 
				
			||||||
 | 
					includedir=${prefix}/include/ffi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: libffi
 | 
				
			||||||
 | 
					Description: Library supporting Foreign Function Interfaces
 | 
				
			||||||
 | 
					Version: 3.3-rc0
 | 
				
			||||||
 | 
					Libs: -L${toolexeclibdir} -lffi
 | 
				
			||||||
 | 
					Cflags: -I${includedir}
 | 
				
			||||||
							
								
								
									
										14
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/libxml-2.0.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/libxml-2.0.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX10.16.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					includedir=${prefix}/include
 | 
				
			||||||
 | 
					modules=1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: libXML
 | 
				
			||||||
 | 
					Version: 2.9.4
 | 
				
			||||||
 | 
					Description: libXML library version2.
 | 
				
			||||||
 | 
					Requires:
 | 
				
			||||||
 | 
					Libs: -L${libdir} -lxml2
 | 
				
			||||||
 | 
					Libs.private: -lz -lpthread -licucore -lm
 | 
				
			||||||
 | 
					Cflags:
 | 
				
			||||||
							
								
								
									
										13
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/libxslt.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/libxslt.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX10.16.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					includedir=${prefix}/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: libxslt
 | 
				
			||||||
 | 
					Version: 1.1.29
 | 
				
			||||||
 | 
					Description: XSLT library version 2.
 | 
				
			||||||
 | 
					Requires: libxml-2.0
 | 
				
			||||||
 | 
					Libs: -L${libdir} -lxslt  -lxml2 -lz -lpthread -licucore -lm
 | 
				
			||||||
 | 
					Cflags:
 | 
				
			||||||
							
								
								
									
										14
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/ncurses.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/ncurses.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX10.16.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					includedir=${prefix}/include
 | 
				
			||||||
 | 
					major_version=5
 | 
				
			||||||
 | 
					version=5.7.20081102
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: ncurses
 | 
				
			||||||
 | 
					Description: ncurses 5.7 library
 | 
				
			||||||
 | 
					Version: ${version}
 | 
				
			||||||
 | 
					Requires:
 | 
				
			||||||
 | 
					Libs: -L${libdir} -lncurses
 | 
				
			||||||
 | 
					Cflags:
 | 
				
			||||||
							
								
								
									
										14
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/ncursesw.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/ncursesw.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX10.16.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					includedir=${prefix}/include
 | 
				
			||||||
 | 
					major_version=5
 | 
				
			||||||
 | 
					version=5.7.20081102
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: ncursesw
 | 
				
			||||||
 | 
					Description: ncurses 5.7 library
 | 
				
			||||||
 | 
					Version: ${version}
 | 
				
			||||||
 | 
					Requires:
 | 
				
			||||||
 | 
					Libs: -L${libdir} -lncurses
 | 
				
			||||||
 | 
					Cflags:
 | 
				
			||||||
							
								
								
									
										12
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/sqlite3.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/sqlite3.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX10.16.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					includedir=${prefix}/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: SQLite
 | 
				
			||||||
 | 
					Description: SQL database engine
 | 
				
			||||||
 | 
					Version: 3.31.1
 | 
				
			||||||
 | 
					Libs: -L${libdir} -lsqlite3
 | 
				
			||||||
 | 
					Libs.private:
 | 
				
			||||||
 | 
					Cflags:
 | 
				
			||||||
							
								
								
									
										14
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/uuid.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/uuid.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX10.16.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					sharedlibdir=${libdir}
 | 
				
			||||||
 | 
					includedir=${prefix}/include/uuid
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: uuid
 | 
				
			||||||
 | 
					Description: Universally unique id library
 | 
				
			||||||
 | 
					Version: 1.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Requires:
 | 
				
			||||||
 | 
					Libs:
 | 
				
			||||||
 | 
					Cflags: -I${includedir}
 | 
				
			||||||
							
								
								
									
										14
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/zlib.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								Library/Homebrew/os/mac/pkgconfig/10.16/zlib.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX10.16.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					sharedlibdir=${libdir}
 | 
				
			||||||
 | 
					includedir=${prefix}/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: zlib
 | 
				
			||||||
 | 
					Description: zlib compression library
 | 
				
			||||||
 | 
					Version: 1.2.11
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Requires:
 | 
				
			||||||
 | 
					Libs: -L${libdir} -L${sharedlibdir} -lz
 | 
				
			||||||
 | 
					Cflags:
 | 
				
			||||||
							
								
								
									
										12
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/expat.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/expat.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					includedir=${prefix}/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: expat
 | 
				
			||||||
 | 
					Version: 2.2.8
 | 
				
			||||||
 | 
					Description: expat XML parser
 | 
				
			||||||
 | 
					URL: http://www.libexpat.org
 | 
				
			||||||
 | 
					Libs: -L${libdir} -lexpat
 | 
				
			||||||
 | 
					Cflags:
 | 
				
			||||||
							
								
								
									
										40
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/libcurl.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/libcurl.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					#***************************************************************************
 | 
				
			||||||
 | 
					#                                  _   _ ____  _
 | 
				
			||||||
 | 
					#  Project                     ___| | | |  _ \| |
 | 
				
			||||||
 | 
					#                             / __| | | | |_) | |
 | 
				
			||||||
 | 
					#                            | (__| |_| |  _ <| |___
 | 
				
			||||||
 | 
					#                             \___|\___/|_| \_\_____|
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Copyright (C) 2001 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This software is licensed as described in the file COPYING, which
 | 
				
			||||||
 | 
					# you should have received as part of this distribution. The terms
 | 
				
			||||||
 | 
					# are also available at https://curl.haxx.se/docs/copyright.html.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# You may opt to use, copy, modify, merge, publish, distribute and/or sell
 | 
				
			||||||
 | 
					# copies of the Software, and permit persons to whom the Software is
 | 
				
			||||||
 | 
					# furnished to do so, under the terms of the COPYING file.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
 | 
				
			||||||
 | 
					# KIND, either express or implied.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This should most probably benefit from getting a "Requires:" field added
 | 
				
			||||||
 | 
					# dynamically by configure.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					includedir=${prefix}/include
 | 
				
			||||||
 | 
					supported_protocols="DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS LDAP LDAPS POP3 POP3S RTSP SMB SMBS SMTP SMTPS TELNET TFTP"
 | 
				
			||||||
 | 
					supported_features="AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO MultiSSL NTLM NTLM_WB SSL libz HTTP2 UnixSockets HTTPS-proxy"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: libcurl
 | 
				
			||||||
 | 
					URL: https://curl.haxx.se/
 | 
				
			||||||
 | 
					Description: Library to transfer files with ftp, http, etc.
 | 
				
			||||||
 | 
					Version: 7.64.1
 | 
				
			||||||
 | 
					Libs: -L${libdir} -lcurl
 | 
				
			||||||
 | 
					Libs.private: -lldap -lz
 | 
				
			||||||
 | 
					Cflags:
 | 
				
			||||||
							
								
								
									
										12
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/libedit.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/libedit.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					includedir=${prefix}/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: libedit
 | 
				
			||||||
 | 
					Description: command line editor library provides generic line editing, history, and tokenization functions.
 | 
				
			||||||
 | 
					Version: 3.0
 | 
				
			||||||
 | 
					Requires:
 | 
				
			||||||
 | 
					Libs: -L${libdir} -ledit
 | 
				
			||||||
 | 
					Cflags: -I${includedir}/editline
 | 
				
			||||||
							
								
								
									
										13
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/libexslt.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/libexslt.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					includedir=${prefix}/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: libexslt
 | 
				
			||||||
 | 
					Version: 0.8.17
 | 
				
			||||||
 | 
					Description: EXSLT Extension library
 | 
				
			||||||
 | 
					Requires: libxml-2.0
 | 
				
			||||||
 | 
					Libs: -L${libdir} -lexslt -lxslt  -lxml2 -lz -lpthread -licucore -lm
 | 
				
			||||||
 | 
					Cflags:
 | 
				
			||||||
							
								
								
									
										12
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/libffi.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/libffi.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					toolexeclibdir=${libdir}
 | 
				
			||||||
 | 
					includedir=${prefix}/include/ffi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: libffi
 | 
				
			||||||
 | 
					Description: Library supporting Foreign Function Interfaces
 | 
				
			||||||
 | 
					Version: 3.3-rc0
 | 
				
			||||||
 | 
					Libs: -L${toolexeclibdir} -lffi
 | 
				
			||||||
 | 
					Cflags: -I${includedir}
 | 
				
			||||||
							
								
								
									
										14
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/libxml-2.0.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/libxml-2.0.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					includedir=${prefix}/include
 | 
				
			||||||
 | 
					modules=1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: libXML
 | 
				
			||||||
 | 
					Version: 2.9.4
 | 
				
			||||||
 | 
					Description: libXML library version2.
 | 
				
			||||||
 | 
					Requires:
 | 
				
			||||||
 | 
					Libs: -L${libdir} -lxml2
 | 
				
			||||||
 | 
					Libs.private: -lz -lpthread -licucore -lm
 | 
				
			||||||
 | 
					Cflags:
 | 
				
			||||||
							
								
								
									
										13
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/libxslt.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/libxslt.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					includedir=${prefix}/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: libxslt
 | 
				
			||||||
 | 
					Version: 1.1.29
 | 
				
			||||||
 | 
					Description: XSLT library version 2.
 | 
				
			||||||
 | 
					Requires: libxml-2.0
 | 
				
			||||||
 | 
					Libs: -L${libdir} -lxslt  -lxml2 -lz -lpthread -licucore -lm
 | 
				
			||||||
 | 
					Cflags:
 | 
				
			||||||
							
								
								
									
										14
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/ncurses.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/ncurses.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					includedir=${prefix}/include
 | 
				
			||||||
 | 
					major_version=5
 | 
				
			||||||
 | 
					version=5.7.20081102
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: ncurses
 | 
				
			||||||
 | 
					Description: ncurses 5.7 library
 | 
				
			||||||
 | 
					Version: ${version}
 | 
				
			||||||
 | 
					Requires:
 | 
				
			||||||
 | 
					Libs: -L${libdir} -lncurses
 | 
				
			||||||
 | 
					Cflags:
 | 
				
			||||||
							
								
								
									
										14
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/ncursesw.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/ncursesw.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					includedir=${prefix}/include
 | 
				
			||||||
 | 
					major_version=5
 | 
				
			||||||
 | 
					version=5.7.20081102
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: ncursesw
 | 
				
			||||||
 | 
					Description: ncurses 5.7 library
 | 
				
			||||||
 | 
					Version: ${version}
 | 
				
			||||||
 | 
					Requires:
 | 
				
			||||||
 | 
					Libs: -L${libdir} -lncurses
 | 
				
			||||||
 | 
					Cflags:
 | 
				
			||||||
							
								
								
									
										12
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/sqlite3.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/sqlite3.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					includedir=${prefix}/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: SQLite
 | 
				
			||||||
 | 
					Description: SQL database engine
 | 
				
			||||||
 | 
					Version: 3.31.1
 | 
				
			||||||
 | 
					Libs: -L${libdir} -lsqlite3
 | 
				
			||||||
 | 
					Libs.private:
 | 
				
			||||||
 | 
					Cflags:
 | 
				
			||||||
							
								
								
									
										14
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/uuid.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/uuid.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					sharedlibdir=${libdir}
 | 
				
			||||||
 | 
					includedir=${prefix}/include/uuid
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: uuid
 | 
				
			||||||
 | 
					Description: Universally unique id library
 | 
				
			||||||
 | 
					Version: 1.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Requires:
 | 
				
			||||||
 | 
					Libs:
 | 
				
			||||||
 | 
					Cflags: -I${includedir}
 | 
				
			||||||
							
								
								
									
										14
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/zlib.pc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								Library/Homebrew/os/mac/pkgconfig/11.0/zlib.pc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk
 | 
				
			||||||
 | 
					prefix=${homebrew_sdkroot}/usr
 | 
				
			||||||
 | 
					exec_prefix=/usr
 | 
				
			||||||
 | 
					libdir=${exec_prefix}/lib
 | 
				
			||||||
 | 
					sharedlibdir=${libdir}
 | 
				
			||||||
 | 
					includedir=${prefix}/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Name: zlib
 | 
				
			||||||
 | 
					Description: zlib compression library
 | 
				
			||||||
 | 
					Version: 1.2.11
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Requires:
 | 
				
			||||||
 | 
					Libs: -L${libdir} -L${sharedlibdir} -lz
 | 
				
			||||||
 | 
					Cflags:
 | 
				
			||||||
@ -1,11 +1,13 @@
 | 
				
			|||||||
# frozen_string_literal: true
 | 
					# frozen_string_literal: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					require "hardware"
 | 
				
			||||||
require "version"
 | 
					require "version"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module OS
 | 
					module OS
 | 
				
			||||||
  module Mac
 | 
					  module Mac
 | 
				
			||||||
    class Version < ::Version
 | 
					    class Version < ::Version
 | 
				
			||||||
      SYMBOLS = {
 | 
					      SYMBOLS = {
 | 
				
			||||||
 | 
					        big_sur:     Hardware::CPU.arm? ? "11.0" : "10.16",
 | 
				
			||||||
        catalina:    "10.15",
 | 
					        catalina:    "10.15",
 | 
				
			||||||
        mojave:      "10.14",
 | 
					        mojave:      "10.14",
 | 
				
			||||||
        high_sierra: "10.13",
 | 
					        high_sierra: "10.13",
 | 
				
			||||||
@ -32,7 +34,7 @@ module OS
 | 
				
			|||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      def to_sym
 | 
					      def to_sym
 | 
				
			||||||
        SYMBOLS.invert.fetch(@version) { :dunno }
 | 
					        SYMBOLS.invert.fetch(@version, :dunno)
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      def pretty_name
 | 
					      def pretty_name
 | 
				
			||||||
 | 
				
			|||||||
@ -13,9 +13,10 @@ module OS
 | 
				
			|||||||
      # CI systems have been updated.
 | 
					      # CI systems have been updated.
 | 
				
			||||||
      # This may be a beta version for a beta macOS.
 | 
					      # This may be a beta version for a beta macOS.
 | 
				
			||||||
      def latest_version
 | 
					      def latest_version
 | 
				
			||||||
        latest = "11.4.1"
 | 
					        latest_stable = "11.5"
 | 
				
			||||||
        case MacOS.version
 | 
					        case MacOS.version
 | 
				
			||||||
        when "10.15" then "11.4.1"
 | 
					        when "11.0", "10.16" then "12.0"
 | 
				
			||||||
 | 
					        when "10.15" then latest_stable
 | 
				
			||||||
        when "10.14" then "11.3.1"
 | 
					        when "10.14" then "11.3.1"
 | 
				
			||||||
        when "10.13" then "10.1"
 | 
					        when "10.13" then "10.1"
 | 
				
			||||||
        when "10.12" then "9.2"
 | 
					        when "10.12" then "9.2"
 | 
				
			||||||
@ -26,7 +27,7 @@ module OS
 | 
				
			|||||||
          raise "macOS '#{MacOS.version}' is invalid" unless OS::Mac.prerelease?
 | 
					          raise "macOS '#{MacOS.version}' is invalid" unless OS::Mac.prerelease?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          # Default to newest known version of Xcode for unreleased macOS versions.
 | 
					          # Default to newest known version of Xcode for unreleased macOS versions.
 | 
				
			||||||
          latest
 | 
					          latest_stable
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -36,6 +37,7 @@ module OS
 | 
				
			|||||||
      # also in beta).
 | 
					      # also in beta).
 | 
				
			||||||
      def minimum_version
 | 
					      def minimum_version
 | 
				
			||||||
        case MacOS.version
 | 
					        case MacOS.version
 | 
				
			||||||
 | 
					        when "11.0", "10.16" then "12.0"
 | 
				
			||||||
        when "10.15" then "11.0"
 | 
					        when "10.15" then "11.0"
 | 
				
			||||||
        when "10.14" then "10.2"
 | 
					        when "10.14" then "10.2"
 | 
				
			||||||
        when "10.13" then "9.0"
 | 
					        when "10.13" then "9.0"
 | 
				
			||||||
@ -173,9 +175,10 @@ module OS
 | 
				
			|||||||
        # installed CLT version. This is useful as they are packaged
 | 
					        # installed CLT version. This is useful as they are packaged
 | 
				
			||||||
        # simultaneously so workarounds need to apply to both based on their
 | 
					        # simultaneously so workarounds need to apply to both based on their
 | 
				
			||||||
        # comparable version.
 | 
					        # comparable version.
 | 
				
			||||||
        latest = "11.4.1"
 | 
					        latest_stable = "11.5"
 | 
				
			||||||
        case (DevelopmentTools.clang_version.to_f * 10).to_i
 | 
					        case (DevelopmentTools.clang_version.to_f * 10).to_i
 | 
				
			||||||
        when 110     then latest
 | 
					        when 120     then "12.0"
 | 
				
			||||||
 | 
					        when 110     then latest_stable
 | 
				
			||||||
        when 100     then "10.3"
 | 
					        when 100     then "10.3"
 | 
				
			||||||
        when 91      then "9.4"
 | 
					        when 91      then "9.4"
 | 
				
			||||||
        when 90      then "9.2"
 | 
					        when 90      then "9.2"
 | 
				
			||||||
@ -186,7 +189,7 @@ module OS
 | 
				
			|||||||
        when 61      then "6.1"
 | 
					        when 61      then "6.1"
 | 
				
			||||||
        when 60      then "6.0"
 | 
					        when 60      then "6.0"
 | 
				
			||||||
        when 0       then "dunno"
 | 
					        when 0       then "dunno"
 | 
				
			||||||
        else              latest
 | 
					        else              latest_stable
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -250,6 +253,7 @@ module OS
 | 
				
			|||||||
      # and our CI systems have been updated.
 | 
					      # and our CI systems have been updated.
 | 
				
			||||||
      def latest_clang_version
 | 
					      def latest_clang_version
 | 
				
			||||||
        case MacOS.version
 | 
					        case MacOS.version
 | 
				
			||||||
 | 
					        when "11.0", "10.16" then "1200.0.22.7"
 | 
				
			||||||
        when "10.15" then "1103.0.32.59"
 | 
					        when "10.15" then "1103.0.32.59"
 | 
				
			||||||
        when "10.14" then "1001.0.46.4"
 | 
					        when "10.14" then "1001.0.46.4"
 | 
				
			||||||
        when "10.13" then "1000.10.44.2"
 | 
					        when "10.13" then "1000.10.44.2"
 | 
				
			||||||
@ -265,6 +269,7 @@ module OS
 | 
				
			|||||||
      # that macOS version.
 | 
					      # that macOS version.
 | 
				
			||||||
      def minimum_version
 | 
					      def minimum_version
 | 
				
			||||||
        case MacOS.version
 | 
					        case MacOS.version
 | 
				
			||||||
 | 
					        when "11.0", "10.16" then "12.0.0"
 | 
				
			||||||
        when "10.15" then "11.0.0"
 | 
					        when "10.15" then "11.0.0"
 | 
				
			||||||
        when "10.14" then "10.0.0"
 | 
					        when "10.14" then "10.0.0"
 | 
				
			||||||
        when "10.13" then "9.0.0"
 | 
					        when "10.13" then "9.0.0"
 | 
				
			||||||
 | 
				
			|||||||
@ -2,9 +2,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
module OS
 | 
					module OS
 | 
				
			||||||
  module Mac
 | 
					  module Mac
 | 
				
			||||||
    X11 = XQuartz = Module.new # rubocop:disable Style/MutableConstant
 | 
					    X11 = XQuartz = Module.new do # rubocop:disable Style/MutableConstant
 | 
				
			||||||
 | 
					 | 
				
			||||||
    module XQuartz
 | 
					 | 
				
			||||||
      module_function
 | 
					      module_function
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      DEFAULT_BUNDLE_PATH = Pathname.new("Applications/Utilities/XQuartz.app").freeze
 | 
					      DEFAULT_BUNDLE_PATH = Pathname.new("Applications/Utilities/XQuartz.app").freeze
 | 
				
			||||||
 | 
				
			|||||||
@ -195,6 +195,34 @@ module RuboCop
 | 
				
			|||||||
        end
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      class ShellCmd < FormulaCop
 | 
				
			||||||
 | 
					        def audit_formula(_node, _class_node, _parent_class_node, body_node)
 | 
				
			||||||
 | 
					          test = find_block(body_node, :test)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          [:popen_read, :popen_write].each do |unsafe_command|
 | 
				
			||||||
 | 
					            test_methods = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            unless test.nil?
 | 
				
			||||||
 | 
					              find_instance_method_call(test, "Utils", unsafe_command) do |method|
 | 
				
			||||||
 | 
					                test_methods << method.source_range
 | 
				
			||||||
 | 
					              end
 | 
				
			||||||
 | 
					            end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            find_instance_method_call(body_node, "Utils", unsafe_command) do |method|
 | 
				
			||||||
 | 
					              unless test_methods.include?(method.source_range)
 | 
				
			||||||
 | 
					                problem "Use `Utils.safe_#{unsafe_command}` instead of `Utils.#{unsafe_command}`"
 | 
				
			||||||
 | 
					              end
 | 
				
			||||||
 | 
					            end
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        def autocorrect(node)
 | 
				
			||||||
 | 
					          lambda do |corrector|
 | 
				
			||||||
 | 
					            corrector.replace(node.loc.selector, "safe_#{node.method_name}")
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      class Miscellaneous < FormulaCop
 | 
					      class Miscellaneous < FormulaCop
 | 
				
			||||||
        def audit_formula(_node, _class_node, _parent_class_node, body_node)
 | 
					        def audit_formula(_node, _class_node, _parent_class_node, body_node)
 | 
				
			||||||
          # FileUtils is included in Formula
 | 
					          # FileUtils is included in Formula
 | 
				
			||||||
 | 
				
			|||||||
@ -60,7 +60,7 @@ module RuboCop
 | 
				
			|||||||
          end
 | 
					          end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          find_method_with_args(body_node, :system, "cargo", "build") do
 | 
					          find_method_with_args(body_node, :system, "cargo", "build") do
 | 
				
			||||||
            problem "use \"cargo\", \"install\", \"--root\", prefix, \"--path\", \".\""
 | 
					            problem "use \"cargo\", \"install\", *std_cargo_args"
 | 
				
			||||||
          end
 | 
					          end
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
				
			|||||||
@ -137,8 +137,11 @@ fi
 | 
				
			|||||||
path="/Applications/Xcode.app/Contents/Developer/usr/bin/$SCM_FILE"
 | 
					path="/Applications/Xcode.app/Contents/Developer/usr/bin/$SCM_FILE"
 | 
				
			||||||
safe_exec "$path" "$@"
 | 
					safe_exec "$path" "$@"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
path="/usr/bin/$SCM_FILE"
 | 
					if [[ -z "$popup_stub" && "$HOMEBREW_MACOS_VERSION_NUMERIC" -lt "101500" ]]
 | 
				
			||||||
[[ -z "$popup_stub" ]] && safe_exec "$path" "$@"
 | 
					then
 | 
				
			||||||
 | 
					  path="/usr/bin/$SCM_FILE"
 | 
				
			||||||
 | 
					  safe_exec "$path" "$@"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo "You must: brew install $SCM_FILE" >&2
 | 
					echo "You must: brew install $SCM_FILE" >&2
 | 
				
			||||||
exit 1
 | 
					exit 1
 | 
				
			||||||
 | 
				
			|||||||
@ -188,8 +188,8 @@ class Cmd
 | 
				
			|||||||
    when "-Xpreprocessor", "-Xclang"
 | 
					    when "-Xpreprocessor", "-Xclang"
 | 
				
			||||||
      # used for -Xpreprocessor -fopenmp
 | 
					      # used for -Xpreprocessor -fopenmp
 | 
				
			||||||
      args << arg << enum.next
 | 
					      args << arg << enum.next
 | 
				
			||||||
    when /-mmacosx-version-min=10\.(\d+)/
 | 
					    when /-mmacosx-version-min=(\d+)\.(\d+)/
 | 
				
			||||||
      arg = "-mmacosx-version-min=10.9" if high_sierra_or_later? && $1.to_i < 9
 | 
					      arg = "-mmacosx-version-min=10.9" if high_sierra_or_later? && $1 == "10" && $2.to_i < 9
 | 
				
			||||||
      args << arg
 | 
					      args << arg
 | 
				
			||||||
    when "--fast-math"
 | 
					    when "--fast-math"
 | 
				
			||||||
      arg = "-ffast-math" if tool =~ /^clang/
 | 
					      arg = "-ffast-math" if tool =~ /^clang/
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
# This file is autogenerated. Do not edit it by hand. Regenerate it with:
 | 
					# This file is autogenerated. Do not edit it by hand. Regenerate it with:
 | 
				
			||||||
#   tapioca sync
 | 
					#   tapioca sync --exclude json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# typed: false
 | 
					# typed: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
# This file is autogenerated. Do not edit it by hand. Regenerate it with:
 | 
					# This file is autogenerated. Do not edit it by hand. Regenerate it with:
 | 
				
			||||||
#   tapioca sync
 | 
					#   tapioca sync --exclude json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# typed: true
 | 
					# typed: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,87 +0,0 @@
 | 
				
			|||||||
# This file is autogenerated. Do not edit it by hand. Regenerate it with:
 | 
					 | 
				
			||||||
#   tapioca sync
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# typed: true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class Class < ::Module
 | 
					 | 
				
			||||||
  def json_creatable?; end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
module JSON
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  private
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  def dump(obj, anIO = _, limit = _); end
 | 
					 | 
				
			||||||
  def fast_generate(obj, opts = _); end
 | 
					 | 
				
			||||||
  def fast_unparse(obj, opts = _); end
 | 
					 | 
				
			||||||
  def generate(obj, opts = _); end
 | 
					 | 
				
			||||||
  def load(source, proc = _, options = _); end
 | 
					 | 
				
			||||||
  def parse(source, opts = _); end
 | 
					 | 
				
			||||||
  def parse!(source, opts = _); end
 | 
					 | 
				
			||||||
  def pretty_generate(obj, opts = _); end
 | 
					 | 
				
			||||||
  def pretty_unparse(obj, opts = _); end
 | 
					 | 
				
			||||||
  def recurse_proc(result, &proc); end
 | 
					 | 
				
			||||||
  def restore(source, proc = _, options = _); end
 | 
					 | 
				
			||||||
  def unparse(obj, opts = _); end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  def self.[](object, opts = _); end
 | 
					 | 
				
			||||||
  def self.create_id; end
 | 
					 | 
				
			||||||
  def self.create_id=(_); end
 | 
					 | 
				
			||||||
  def self.deep_const_get(path); end
 | 
					 | 
				
			||||||
  def self.dump(obj, anIO = _, limit = _); end
 | 
					 | 
				
			||||||
  def self.dump_default_options; end
 | 
					 | 
				
			||||||
  def self.dump_default_options=(_); end
 | 
					 | 
				
			||||||
  def self.fast_generate(obj, opts = _); end
 | 
					 | 
				
			||||||
  def self.fast_unparse(obj, opts = _); end
 | 
					 | 
				
			||||||
  def self.generate(obj, opts = _); end
 | 
					 | 
				
			||||||
  def self.generator; end
 | 
					 | 
				
			||||||
  def self.generator=(generator); end
 | 
					 | 
				
			||||||
  def self.iconv(to, from, string); end
 | 
					 | 
				
			||||||
  def self.load(source, proc = _, options = _); end
 | 
					 | 
				
			||||||
  def self.load_default_options; end
 | 
					 | 
				
			||||||
  def self.load_default_options=(_); end
 | 
					 | 
				
			||||||
  def self.parse(source, opts = _); end
 | 
					 | 
				
			||||||
  def self.parse!(source, opts = _); end
 | 
					 | 
				
			||||||
  def self.parser; end
 | 
					 | 
				
			||||||
  def self.parser=(parser); end
 | 
					 | 
				
			||||||
  def self.pretty_generate(obj, opts = _); end
 | 
					 | 
				
			||||||
  def self.pretty_unparse(obj, opts = _); end
 | 
					 | 
				
			||||||
  def self.recurse_proc(result, &proc); end
 | 
					 | 
				
			||||||
  def self.restore(source, proc = _, options = _); end
 | 
					 | 
				
			||||||
  def self.state; end
 | 
					 | 
				
			||||||
  def self.state=(_); end
 | 
					 | 
				
			||||||
  def self.unparse(obj, opts = _); end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class JSON::GenericObject < ::OpenStruct
 | 
					 | 
				
			||||||
  def as_json(*_); end
 | 
					 | 
				
			||||||
  def to_hash; end
 | 
					 | 
				
			||||||
  def to_json(*a); end
 | 
					 | 
				
			||||||
  def |(other); end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  def self.dump(obj, *args); end
 | 
					 | 
				
			||||||
  def self.from_hash(object); end
 | 
					 | 
				
			||||||
  def self.json_creatable=(_); end
 | 
					 | 
				
			||||||
  def self.json_creatable?; end
 | 
					 | 
				
			||||||
  def self.json_create(data); end
 | 
					 | 
				
			||||||
  def self.load(source, proc = _, opts = _); end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class JSON::JSONError < ::StandardError
 | 
					 | 
				
			||||||
  def self.wrap(exception); end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
JSON::Parser = JSON::Ext::Parser
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
JSON::State = JSON::Ext::Generator::State
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
JSON::UnparserError = JSON::GeneratorError
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
module Kernel
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  private
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  def JSON(object, *args); end
 | 
					 | 
				
			||||||
  def j(*objs); end
 | 
					 | 
				
			||||||
  def jj(*objs); end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
# This file is autogenerated. Do not edit it by hand. Regenerate it with:
 | 
					# This file is autogenerated. Do not edit it by hand. Regenerate it with:
 | 
				
			||||||
#   tapioca sync
 | 
					#   tapioca sync --exclude json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# typed: true
 | 
					# typed: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
# This file is autogenerated. Do not edit it by hand. Regenerate it with:
 | 
					# This file is autogenerated. Do not edit it by hand. Regenerate it with:
 | 
				
			||||||
#   tapioca sync
 | 
					#   tapioca sync --exclude json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# typed: true
 | 
					# typed: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -53,7 +53,9 @@ class Parser::AST::Processor < ::AST::Processor
 | 
				
			|||||||
  def on_empty_else(node); end
 | 
					  def on_empty_else(node); end
 | 
				
			||||||
  def on_ensure(node); end
 | 
					  def on_ensure(node); end
 | 
				
			||||||
  def on_erange(node); end
 | 
					  def on_erange(node); end
 | 
				
			||||||
 | 
					  def on_find_pattern(node); end
 | 
				
			||||||
  def on_for(node); end
 | 
					  def on_for(node); end
 | 
				
			||||||
 | 
					  def on_forward_arg(node); end
 | 
				
			||||||
  def on_gvar(node); end
 | 
					  def on_gvar(node); end
 | 
				
			||||||
  def on_gvasgn(node); end
 | 
					  def on_gvasgn(node); end
 | 
				
			||||||
  def on_hash(node); end
 | 
					  def on_hash(node); end
 | 
				
			||||||
@ -217,9 +219,11 @@ class Parser::Builders::Default
 | 
				
			|||||||
  def emit_file_line_as_literals; end
 | 
					  def emit_file_line_as_literals; end
 | 
				
			||||||
  def emit_file_line_as_literals=(_); end
 | 
					  def emit_file_line_as_literals=(_); end
 | 
				
			||||||
  def false(false_t); end
 | 
					  def false(false_t); end
 | 
				
			||||||
 | 
					  def find_pattern(lbrack_t, elements, rbrack_t); end
 | 
				
			||||||
  def float(float_t); end
 | 
					  def float(float_t); end
 | 
				
			||||||
  def for(for_t, iterator, in_t, iteratee, do_t, body, end_t); end
 | 
					  def for(for_t, iterator, in_t, iteratee, do_t, body, end_t); end
 | 
				
			||||||
  def forward_args(begin_t, dots_t, end_t); end
 | 
					  def forward_arg(dots_t); end
 | 
				
			||||||
 | 
					  def forward_only_args(begin_t, dots_t, end_t); end
 | 
				
			||||||
  def forwarded_args(dots_t); end
 | 
					  def forwarded_args(dots_t); end
 | 
				
			||||||
  def gvar(token); end
 | 
					  def gvar(token); end
 | 
				
			||||||
  def hash_pattern(lbrace_t, kwargs, rbrace_t); end
 | 
					  def hash_pattern(lbrace_t, kwargs, rbrace_t); end
 | 
				
			||||||
@ -366,6 +370,8 @@ class Parser::Builders::Default
 | 
				
			|||||||
  def self.emit_arg_inside_procarg0=(_); end
 | 
					  def self.emit_arg_inside_procarg0=(_); end
 | 
				
			||||||
  def self.emit_encoding; end
 | 
					  def self.emit_encoding; end
 | 
				
			||||||
  def self.emit_encoding=(_); end
 | 
					  def self.emit_encoding=(_); end
 | 
				
			||||||
 | 
					  def self.emit_forward_arg; end
 | 
				
			||||||
 | 
					  def self.emit_forward_arg=(_); end
 | 
				
			||||||
  def self.emit_index; end
 | 
					  def self.emit_index; end
 | 
				
			||||||
  def self.emit_index=(_); end
 | 
					  def self.emit_index=(_); end
 | 
				
			||||||
  def self.emit_lambda; end
 | 
					  def self.emit_lambda; end
 | 
				
			||||||
@ -1024,8 +1030,11 @@ class Parser::Source::TreeRewriter
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def initialize(source_buffer, crossing_deletions: _, different_replacements: _, swallowed_insertions: _); end
 | 
					  def initialize(source_buffer, crossing_deletions: _, different_replacements: _, swallowed_insertions: _); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def as_nested_actions; end
 | 
				
			||||||
 | 
					  def as_replacements; end
 | 
				
			||||||
  def diagnostics; end
 | 
					  def diagnostics; end
 | 
				
			||||||
  def empty?; end
 | 
					  def empty?; end
 | 
				
			||||||
 | 
					  def import!(foreign_rewriter, offset: _); end
 | 
				
			||||||
  def in_transaction?; end
 | 
					  def in_transaction?; end
 | 
				
			||||||
  def insert_after(range, content); end
 | 
					  def insert_after(range, content); end
 | 
				
			||||||
  def insert_after_multi(range, text); end
 | 
					  def insert_after_multi(range, text); end
 | 
				
			||||||
@ -1059,10 +1068,13 @@ class Parser::Source::TreeRewriter::Action
 | 
				
			|||||||
  def initialize(range, enforcer, insert_before: _, replacement: _, insert_after: _, children: _); end
 | 
					  def initialize(range, enforcer, insert_before: _, replacement: _, insert_after: _, children: _); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def combine(action); end
 | 
					  def combine(action); end
 | 
				
			||||||
 | 
					  def contract; end
 | 
				
			||||||
  def empty?; end
 | 
					  def empty?; end
 | 
				
			||||||
  def insert_after; end
 | 
					  def insert_after; end
 | 
				
			||||||
  def insert_before; end
 | 
					  def insert_before; end
 | 
				
			||||||
  def insertion?; end
 | 
					  def insertion?; end
 | 
				
			||||||
 | 
					  def moved(source_buffer, offset); end
 | 
				
			||||||
 | 
					  def nested_actions; end
 | 
				
			||||||
  def ordered_replacements; end
 | 
					  def ordered_replacements; end
 | 
				
			||||||
  def range; end
 | 
					  def range; end
 | 
				
			||||||
  def replacement; end
 | 
					  def replacement; end
 | 
				
			||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
# This file is autogenerated. Do not edit it by hand. Regenerate it with:
 | 
					# This file is autogenerated. Do not edit it by hand. Regenerate it with:
 | 
				
			||||||
#   tapioca sync
 | 
					#   tapioca sync --exclude json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# typed: true
 | 
					# typed: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -3415,6 +3415,19 @@ end
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
RuboCop::Cop::Lint::CircularArgumentReference::MSG = T.let(T.unsafe(nil), String)
 | 
					RuboCop::Cop::Lint::CircularArgumentReference::MSG = T.let(T.unsafe(nil), String)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class RuboCop::Cop::Lint::ConstantResolution < ::RuboCop::Cop::Cop
 | 
				
			||||||
 | 
					  def on_const(node); end
 | 
				
			||||||
 | 
					  def unqualified_const?(node = _); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  private
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def allowed_names; end
 | 
				
			||||||
 | 
					  def const_name?(name); end
 | 
				
			||||||
 | 
					  def ignored_names; end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RuboCop::Cop::Lint::ConstantResolution::MSG = T.let(T.unsafe(nil), String)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class RuboCop::Cop::Lint::Debugger < ::RuboCop::Cop::Cop
 | 
					class RuboCop::Cop::Lint::Debugger < ::RuboCop::Cop::Cop
 | 
				
			||||||
  def binding_irb_call?(node = _); end
 | 
					  def binding_irb_call?(node = _); end
 | 
				
			||||||
  def debugger_call?(node = _); end
 | 
					  def debugger_call?(node = _); end
 | 
				
			||||||
@ -4004,6 +4017,7 @@ end
 | 
				
			|||||||
RuboCop::Cop::Lint::PercentSymbolArray::MSG = T.let(T.unsafe(nil), String)
 | 
					RuboCop::Cop::Lint::PercentSymbolArray::MSG = T.let(T.unsafe(nil), String)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class RuboCop::Cop::Lint::RaiseException < ::RuboCop::Cop::Cop
 | 
					class RuboCop::Cop::Lint::RaiseException < ::RuboCop::Cop::Cop
 | 
				
			||||||
 | 
					  def autocorrect(node); end
 | 
				
			||||||
  def exception?(node = _); end
 | 
					  def exception?(node = _); end
 | 
				
			||||||
  def exception_new_with_message?(node = _); end
 | 
					  def exception_new_with_message?(node = _); end
 | 
				
			||||||
  def on_send(node); end
 | 
					  def on_send(node); end
 | 
				
			||||||
@ -4170,6 +4184,7 @@ RuboCop::Cop::Lint::RedundantWithObject::MSG_EACH_WITH_OBJECT = T.let(T.unsafe(n
 | 
				
			|||||||
RuboCop::Cop::Lint::RedundantWithObject::MSG_WITH_OBJECT = T.let(T.unsafe(nil), String)
 | 
					RuboCop::Cop::Lint::RedundantWithObject::MSG_WITH_OBJECT = T.let(T.unsafe(nil), String)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class RuboCop::Cop::Lint::RegexpAsCondition < ::RuboCop::Cop::Cop
 | 
					class RuboCop::Cop::Lint::RegexpAsCondition < ::RuboCop::Cop::Cop
 | 
				
			||||||
 | 
					  def autocorrect(node); end
 | 
				
			||||||
  def on_match_current_line(node); end
 | 
					  def on_match_current_line(node); end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -4762,11 +4777,14 @@ class RuboCop::Cop::Metrics::CyclomaticComplexity < ::RuboCop::Cop::Cop
 | 
				
			|||||||
  include(::RuboCop::Cop::ConfigurableMax)
 | 
					  include(::RuboCop::Cop::ConfigurableMax)
 | 
				
			||||||
  include(::RuboCop::Cop::IgnoredMethods)
 | 
					  include(::RuboCop::Cop::IgnoredMethods)
 | 
				
			||||||
  include(::RuboCop::Cop::MethodComplexity)
 | 
					  include(::RuboCop::Cop::MethodComplexity)
 | 
				
			||||||
 | 
					  include(::RuboCop::Cop::Metrics::Utils::IteratingBlock)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private
 | 
					  private
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def complexity_score_for(_node); end
 | 
					  def block_method(node); end
 | 
				
			||||||
 | 
					  def complexity_score_for(node); end
 | 
				
			||||||
 | 
					  def count_block?(block); end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RuboCop::Cop::Metrics::CyclomaticComplexity::COUNTED_NODES = T.let(T.unsafe(nil), Array)
 | 
					RuboCop::Cop::Metrics::CyclomaticComplexity::COUNTED_NODES = T.let(T.unsafe(nil), Array)
 | 
				
			||||||
@ -4857,6 +4875,14 @@ RuboCop::Cop::Metrics::Utils::AbcSizeCalculator::BRANCH_NODES = T.let(T.unsafe(n
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
RuboCop::Cop::Metrics::Utils::AbcSizeCalculator::CONDITION_NODES = T.let(T.unsafe(nil), Array)
 | 
					RuboCop::Cop::Metrics::Utils::AbcSizeCalculator::CONDITION_NODES = T.let(T.unsafe(nil), Array)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module RuboCop::Cop::Metrics::Utils::IteratingBlock
 | 
				
			||||||
 | 
					  def block_method_name(node); end
 | 
				
			||||||
 | 
					  def iterating_block?(node); end
 | 
				
			||||||
 | 
					  def iterating_method?(name); end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RuboCop::Cop::Metrics::Utils::IteratingBlock::KNOWN_ITERATING_METHODS = T.let(T.unsafe(nil), Set)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module RuboCop::Cop::Migration
 | 
					module RuboCop::Cop::Migration
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -5478,6 +5504,9 @@ module RuboCop::Cop::RegexpLiteralHelp
 | 
				
			|||||||
  private
 | 
					  private
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def freespace_mode_regexp?(node); end
 | 
					  def freespace_mode_regexp?(node); end
 | 
				
			||||||
 | 
					  def pattern_source(node); end
 | 
				
			||||||
 | 
					  def replace_match_with_spaces(source, pattern); end
 | 
				
			||||||
 | 
					  def source_with_comments_and_interpolations_blanked(child, freespace_mode); end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class RuboCop::Cop::Registry
 | 
					class RuboCop::Cop::Registry
 | 
				
			||||||
@ -7376,6 +7405,7 @@ end
 | 
				
			|||||||
RuboCop::Cop::Style::MultilineMethodSignature::MSG = T.let(T.unsafe(nil), String)
 | 
					RuboCop::Cop::Style::MultilineMethodSignature::MSG = T.let(T.unsafe(nil), String)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class RuboCop::Cop::Style::MultilineTernaryOperator < ::RuboCop::Cop::Cop
 | 
					class RuboCop::Cop::Style::MultilineTernaryOperator < ::RuboCop::Cop::Cop
 | 
				
			||||||
 | 
					  def autocorrect(node); end
 | 
				
			||||||
  def on_if(node); end
 | 
					  def on_if(node); end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -7509,7 +7539,13 @@ end
 | 
				
			|||||||
RuboCop::Cop::Style::NestedParenthesizedCalls::MSG = T.let(T.unsafe(nil), String)
 | 
					RuboCop::Cop::Style::NestedParenthesizedCalls::MSG = T.let(T.unsafe(nil), String)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class RuboCop::Cop::Style::NestedTernaryOperator < ::RuboCop::Cop::Cop
 | 
					class RuboCop::Cop::Style::NestedTernaryOperator < ::RuboCop::Cop::Cop
 | 
				
			||||||
 | 
					  def autocorrect(node); end
 | 
				
			||||||
  def on_if(node); end
 | 
					  def on_if(node); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  private
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def if_node(node); end
 | 
				
			||||||
 | 
					  def remove_parentheses(source); end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RuboCop::Cop::Style::NestedTernaryOperator::MSG = T.let(T.unsafe(nil), String)
 | 
					RuboCop::Cop::Style::NestedTernaryOperator::MSG = T.let(T.unsafe(nil), String)
 | 
				
			||||||
@ -8056,6 +8092,26 @@ RuboCop::Cop::Style::RedundantException::MSG_1 = T.let(T.unsafe(nil), String)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
RuboCop::Cop::Style::RedundantException::MSG_2 = T.let(T.unsafe(nil), String)
 | 
					RuboCop::Cop::Style::RedundantException::MSG_2 = T.let(T.unsafe(nil), String)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class RuboCop::Cop::Style::RedundantFetchBlock < ::RuboCop::Cop::Cop
 | 
				
			||||||
 | 
					  include(::RuboCop::Cop::FrozenStringLiteral)
 | 
				
			||||||
 | 
					  include(::RuboCop::Cop::RangeHelp)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def autocorrect(node); end
 | 
				
			||||||
 | 
					  def on_block(node); end
 | 
				
			||||||
 | 
					  def redundant_fetch_block_candidate?(node = _); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  private
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def basic_literal?(node); end
 | 
				
			||||||
 | 
					  def build_bad_method(send, body); end
 | 
				
			||||||
 | 
					  def build_good_method(send, body); end
 | 
				
			||||||
 | 
					  def check_for_constant?; end
 | 
				
			||||||
 | 
					  def check_for_string?; end
 | 
				
			||||||
 | 
					  def fetch_range(send, node); end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RuboCop::Cop::Style::RedundantFetchBlock::MSG = T.let(T.unsafe(nil), String)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class RuboCop::Cop::Style::RedundantFreeze < ::RuboCop::Cop::Cop
 | 
					class RuboCop::Cop::Style::RedundantFreeze < ::RuboCop::Cop::Cop
 | 
				
			||||||
  include(::RuboCop::Cop::FrozenStringLiteral)
 | 
					  include(::RuboCop::Cop::FrozenStringLiteral)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -8201,10 +8257,9 @@ class RuboCop::Cop::Style::RedundantRegexpEscape < ::RuboCop::Cop::Cop
 | 
				
			|||||||
  private
 | 
					  private
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def allowed_escape?(node, char, within_character_class); end
 | 
					  def allowed_escape?(node, char, within_character_class); end
 | 
				
			||||||
 | 
					  def delimiter?(node, char); end
 | 
				
			||||||
  def each_escape(node); end
 | 
					  def each_escape(node); end
 | 
				
			||||||
  def escape_range_at_index(node, index); end
 | 
					  def escape_range_at_index(node, index); end
 | 
				
			||||||
  def pattern_source(node); end
 | 
					 | 
				
			||||||
  def slash_literal?(node); end
 | 
					 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RuboCop::Cop::Style::RedundantRegexpEscape::ALLOWED_ALWAYS_ESCAPES = T.let(T.unsafe(nil), Array)
 | 
					RuboCop::Cop::Style::RedundantRegexpEscape::ALLOWED_ALWAYS_ESCAPES = T.let(T.unsafe(nil), Array)
 | 
				
			||||||
@ -8266,7 +8321,6 @@ class RuboCop::Cop::Style::RedundantSelf < ::RuboCop::Cop::Cop
 | 
				
			|||||||
  def add_scope(node, local_variables = _); end
 | 
					  def add_scope(node, local_variables = _); end
 | 
				
			||||||
  def allow_self(node); end
 | 
					  def allow_self(node); end
 | 
				
			||||||
  def allowed_send_node?(node); end
 | 
					  def allowed_send_node?(node); end
 | 
				
			||||||
  def keyword?(method_name); end
 | 
					 | 
				
			||||||
  def on_argument(node); end
 | 
					  def on_argument(node); end
 | 
				
			||||||
  def regular_method_call?(node); end
 | 
					  def regular_method_call?(node); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -8275,6 +8329,8 @@ end
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
RuboCop::Cop::Style::RedundantSelf::KERNEL_METHODS = T.let(T.unsafe(nil), Array)
 | 
					RuboCop::Cop::Style::RedundantSelf::KERNEL_METHODS = T.let(T.unsafe(nil), Array)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RuboCop::Cop::Style::RedundantSelf::KEYWORDS = T.let(T.unsafe(nil), Array)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RuboCop::Cop::Style::RedundantSelf::MSG = T.let(T.unsafe(nil), String)
 | 
					RuboCop::Cop::Style::RedundantSelf::MSG = T.let(T.unsafe(nil), String)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class RuboCop::Cop::Style::RedundantSort < ::RuboCop::Cop::Cop
 | 
					class RuboCop::Cop::Style::RedundantSort < ::RuboCop::Cop::Cop
 | 
				
			||||||
@ -8699,8 +8755,15 @@ end
 | 
				
			|||||||
RuboCop::Cop::Style::Strip::MSG = T.let(T.unsafe(nil), String)
 | 
					RuboCop::Cop::Style::Strip::MSG = T.let(T.unsafe(nil), String)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class RuboCop::Cop::Style::StructInheritance < ::RuboCop::Cop::Cop
 | 
					class RuboCop::Cop::Style::StructInheritance < ::RuboCop::Cop::Cop
 | 
				
			||||||
 | 
					  include(::RuboCop::Cop::RangeHelp)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def autocorrect(node); end
 | 
				
			||||||
  def on_class(node); end
 | 
					  def on_class(node); end
 | 
				
			||||||
  def struct_constructor?(node = _); end
 | 
					  def struct_constructor?(node = _); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  private
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def correct_parent(parent, corrector); end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RuboCop::Cop::Style::StructInheritance::MSG = T.let(T.unsafe(nil), String)
 | 
					RuboCop::Cop::Style::StructInheritance::MSG = T.let(T.unsafe(nil), String)
 | 
				
			||||||
@ -9066,6 +9129,7 @@ class RuboCop::Cop::Style::YodaCondition < ::RuboCop::Cop::Cop
 | 
				
			|||||||
  def corrected_code(node); end
 | 
					  def corrected_code(node); end
 | 
				
			||||||
  def enforce_yoda?; end
 | 
					  def enforce_yoda?; end
 | 
				
			||||||
  def equality_only?; end
 | 
					  def equality_only?; end
 | 
				
			||||||
 | 
					  def interpolation?(node); end
 | 
				
			||||||
  def message(node); end
 | 
					  def message(node); end
 | 
				
			||||||
  def non_equality_operator?(node); end
 | 
					  def non_equality_operator?(node); end
 | 
				
			||||||
  def noncommutative_operator?(node); end
 | 
					  def noncommutative_operator?(node); end
 | 
				
			||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -5854,6 +5854,8 @@ class Class
 | 
				
			|||||||
  def any_instance(); end
 | 
					  def any_instance(); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def class_attribute(*attrs, instance_accessor: T.unsafe(nil), instance_reader: T.unsafe(nil), instance_writer: T.unsafe(nil), instance_predicate: T.unsafe(nil), default: T.unsafe(nil)); end
 | 
					  def class_attribute(*attrs, instance_accessor: T.unsafe(nil), instance_reader: T.unsafe(nil), instance_writer: T.unsafe(nil), instance_predicate: T.unsafe(nil), default: T.unsafe(nil)); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def json_creatable?(); end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module CodeRay
 | 
					module CodeRay
 | 
				
			||||||
@ -10311,6 +10313,12 @@ class JSON::Ext::Parser
 | 
				
			|||||||
  def initialize(*_); end
 | 
					  def initialize(*_); end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					JSON::Parser = JSON::Ext::Parser
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					JSON::State = JSON::Ext::Generator::State
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					JSON::UnparserError = JSON::GeneratorError
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class JavaRequirement::CaskSuggestion
 | 
					class JavaRequirement::CaskSuggestion
 | 
				
			||||||
  def self.[](*_); end
 | 
					  def self.[](*_); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -13380,6 +13388,7 @@ class Object
 | 
				
			|||||||
  HOMEBREW_DEFAULT_TEMP = ::T.let(nil, ::T.untyped)
 | 
					  HOMEBREW_DEFAULT_TEMP = ::T.let(nil, ::T.untyped)
 | 
				
			||||||
  HOMEBREW_HELP = ::T.let(nil, ::T.untyped)
 | 
					  HOMEBREW_HELP = ::T.let(nil, ::T.untyped)
 | 
				
			||||||
  HOMEBREW_LIBRARY_PATH = ::T.let(nil, ::T.untyped)
 | 
					  HOMEBREW_LIBRARY_PATH = ::T.let(nil, ::T.untyped)
 | 
				
			||||||
 | 
					  HOMEBREW_PATCHELF_RB = ::T.let(nil, ::T.untyped)
 | 
				
			||||||
  HOMEBREW_TAP_CASK_REGEX = ::T.let(nil, ::T.untyped)
 | 
					  HOMEBREW_TAP_CASK_REGEX = ::T.let(nil, ::T.untyped)
 | 
				
			||||||
  HOMEBREW_TAP_FORMULA_REGEX = ::T.let(nil, ::T.untyped)
 | 
					  HOMEBREW_TAP_FORMULA_REGEX = ::T.let(nil, ::T.untyped)
 | 
				
			||||||
  OFFICIAL_CASK_TAPS = ::T.let(nil, ::T.untyped)
 | 
					  OFFICIAL_CASK_TAPS = ::T.let(nil, ::T.untyped)
 | 
				
			||||||
@ -13864,15 +13873,15 @@ class Parser::Ruby24
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def _reduce_332(val, _values, result); end
 | 
					  def _reduce_332(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_336(val, _values, result); end
 | 
					  def _reduce_333(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def _reduce_337(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_34(val, _values, result); end
 | 
					  def _reduce_34(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_340(val, _values, result); end
 | 
					  def _reduce_341(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_342(val, _values, result); end
 | 
					  def _reduce_343(val, _values, result); end
 | 
				
			||||||
 | 
					 | 
				
			||||||
  def _reduce_345(val, _values, result); end
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_346(val, _values, result); end
 | 
					  def _reduce_346(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -13880,9 +13889,9 @@ class Parser::Ruby24
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def _reduce_348(val, _values, result); end
 | 
					  def _reduce_348(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_35(val, _values, result); end
 | 
					  def _reduce_349(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_350(val, _values, result); end
 | 
					  def _reduce_35(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_351(val, _values, result); end
 | 
					  def _reduce_351(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -13922,9 +13931,9 @@ class Parser::Ruby24
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def _reduce_368(val, _values, result); end
 | 
					  def _reduce_368(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_37(val, _values, result); end
 | 
					  def _reduce_369(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_370(val, _values, result); end
 | 
					  def _reduce_37(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_371(val, _values, result); end
 | 
					  def _reduce_371(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -13940,7 +13949,7 @@ class Parser::Ruby24
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def _reduce_377(val, _values, result); end
 | 
					  def _reduce_377(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_379(val, _values, result); end
 | 
					  def _reduce_378(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_38(val, _values, result); end
 | 
					  def _reduce_38(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -13962,9 +13971,9 @@ class Parser::Ruby24
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def _reduce_388(val, _values, result); end
 | 
					  def _reduce_388(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_39(val, _values, result); end
 | 
					  def _reduce_389(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_390(val, _values, result); end
 | 
					  def _reduce_39(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_391(val, _values, result); end
 | 
					  def _reduce_391(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -14040,19 +14049,19 @@ class Parser::Ruby24
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def _reduce_424(val, _values, result); end
 | 
					  def _reduce_424(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_426(val, _values, result); end
 | 
					  def _reduce_425(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_427(val, _values, result); end
 | 
					  def _reduce_427(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_428(val, _values, result); end
 | 
					  def _reduce_428(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def _reduce_429(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_43(val, _values, result); end
 | 
					  def _reduce_43(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_431(val, _values, result); end
 | 
					  def _reduce_432(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_433(val, _values, result); end
 | 
					  def _reduce_434(val, _values, result); end
 | 
				
			||||||
 | 
					 | 
				
			||||||
  def _reduce_438(val, _values, result); end
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_439(val, _values, result); end
 | 
					  def _reduce_439(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -14126,7 +14135,7 @@ class Parser::Ruby24
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def _reduce_472(val, _values, result); end
 | 
					  def _reduce_472(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_474(val, _values, result); end
 | 
					  def _reduce_473(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_475(val, _values, result); end
 | 
					  def _reduce_475(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -14246,7 +14255,7 @@ class Parser::Ruby24
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def _reduce_530(val, _values, result); end
 | 
					  def _reduce_530(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_532(val, _values, result); end
 | 
					  def _reduce_531(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_533(val, _values, result); end
 | 
					  def _reduce_533(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -14276,7 +14285,7 @@ class Parser::Ruby24
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def _reduce_546(val, _values, result); end
 | 
					  def _reduce_546(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_549(val, _values, result); end
 | 
					  def _reduce_547(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_55(val, _values, result); end
 | 
					  def _reduce_55(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -14294,25 +14303,25 @@ class Parser::Ruby24
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def _reduce_556(val, _values, result); end
 | 
					  def _reduce_556(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_559(val, _values, result); end
 | 
					  def _reduce_557(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_56(val, _values, result); end
 | 
					  def _reduce_56(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_560(val, _values, result); end
 | 
					  def _reduce_560(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_563(val, _values, result); end
 | 
					  def _reduce_561(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_564(val, _values, result); end
 | 
					  def _reduce_564(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_565(val, _values, result); end
 | 
					  def _reduce_565(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_567(val, _values, result); end
 | 
					  def _reduce_566(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_568(val, _values, result); end
 | 
					  def _reduce_568(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_57(val, _values, result); end
 | 
					  def _reduce_569(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_570(val, _values, result); end
 | 
					  def _reduce_57(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_571(val, _values, result); end
 | 
					  def _reduce_571(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -14324,23 +14333,25 @@ class Parser::Ruby24
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def _reduce_575(val, _values, result); end
 | 
					  def _reduce_575(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_588(val, _values, result); end
 | 
					  def _reduce_576(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_589(val, _values, result); end
 | 
					  def _reduce_589(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_59(val, _values, result); end
 | 
					  def _reduce_59(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_594(val, _values, result); end
 | 
					  def _reduce_590(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_595(val, _values, result); end
 | 
					  def _reduce_595(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_599(val, _values, result); end
 | 
					  def _reduce_596(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_6(val, _values, result); end
 | 
					  def _reduce_6(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_60(val, _values, result); end
 | 
					  def _reduce_60(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_603(val, _values, result); end
 | 
					  def _reduce_600(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def _reduce_604(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_61(val, _values, result); end
 | 
					  def _reduce_61(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -14742,15 +14753,15 @@ class Parser::Ruby26
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def _reduce_334(val, _values, result); end
 | 
					  def _reduce_334(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_336(val, _values, result); end
 | 
					  def _reduce_335(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_339(val, _values, result); end
 | 
					  def _reduce_337(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_343(val, _values, result); end
 | 
					  def _reduce_340(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_345(val, _values, result); end
 | 
					  def _reduce_344(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_348(val, _values, result); end
 | 
					  def _reduce_346(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_349(val, _values, result); end
 | 
					  def _reduce_349(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -14760,7 +14771,7 @@ class Parser::Ruby26
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def _reduce_351(val, _values, result); end
 | 
					  def _reduce_351(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_353(val, _values, result); end
 | 
					  def _reduce_352(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_354(val, _values, result); end
 | 
					  def _reduce_354(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -14802,7 +14813,7 @@ class Parser::Ruby26
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def _reduce_371(val, _values, result); end
 | 
					  def _reduce_371(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_373(val, _values, result); end
 | 
					  def _reduce_372(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_374(val, _values, result); end
 | 
					  def _reduce_374(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -14820,7 +14831,7 @@ class Parser::Ruby26
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def _reduce_380(val, _values, result); end
 | 
					  def _reduce_380(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_382(val, _values, result); end
 | 
					  def _reduce_381(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_383(val, _values, result); end
 | 
					  def _reduce_383(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -14842,7 +14853,7 @@ class Parser::Ruby26
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def _reduce_391(val, _values, result); end
 | 
					  def _reduce_391(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_393(val, _values, result); end
 | 
					  def _reduce_392(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_394(val, _values, result); end
 | 
					  def _reduce_394(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -14920,20 +14931,20 @@ class Parser::Ruby26
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def _reduce_427(val, _values, result); end
 | 
					  def _reduce_427(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_429(val, _values, result); end
 | 
					  def _reduce_428(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_430(val, _values, result); end
 | 
					  def _reduce_430(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_431(val, _values, result); end
 | 
					  def _reduce_431(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_434(val, _values, result); end
 | 
					  def _reduce_432(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_436(val, _values, result); end
 | 
					  def _reduce_435(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def _reduce_437(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_44(val, _values, result); end
 | 
					  def _reduce_44(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_441(val, _values, result); end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  def _reduce_442(val, _values, result); end
 | 
					  def _reduce_442(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_443(val, _values, result); end
 | 
					  def _reduce_443(val, _values, result); end
 | 
				
			||||||
@ -15004,7 +15015,7 @@ class Parser::Ruby26
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def _reduce_475(val, _values, result); end
 | 
					  def _reduce_475(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_477(val, _values, result); end
 | 
					  def _reduce_476(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_478(val, _values, result); end
 | 
					  def _reduce_478(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -15128,7 +15139,7 @@ class Parser::Ruby26
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def _reduce_533(val, _values, result); end
 | 
					  def _reduce_533(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_535(val, _values, result); end
 | 
					  def _reduce_534(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_536(val, _values, result); end
 | 
					  def _reduce_536(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -15160,7 +15171,7 @@ class Parser::Ruby26
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def _reduce_549(val, _values, result); end
 | 
					  def _reduce_549(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_552(val, _values, result); end
 | 
					  def _reduce_550(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_553(val, _values, result); end
 | 
					  def _reduce_553(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -15176,21 +15187,21 @@ class Parser::Ruby26
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def _reduce_559(val, _values, result); end
 | 
					  def _reduce_559(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_562(val, _values, result); end
 | 
					  def _reduce_560(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_563(val, _values, result); end
 | 
					  def _reduce_563(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_566(val, _values, result); end
 | 
					  def _reduce_564(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_567(val, _values, result); end
 | 
					  def _reduce_567(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_568(val, _values, result); end
 | 
					  def _reduce_568(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_570(val, _values, result); end
 | 
					  def _reduce_569(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_571(val, _values, result); end
 | 
					  def _reduce_571(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_573(val, _values, result); end
 | 
					  def _reduce_572(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_574(val, _values, result); end
 | 
					  def _reduce_574(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -15202,25 +15213,27 @@ class Parser::Ruby26
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def _reduce_578(val, _values, result); end
 | 
					  def _reduce_578(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def _reduce_579(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_58(val, _values, result); end
 | 
					  def _reduce_58(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_59(val, _values, result); end
 | 
					  def _reduce_59(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_591(val, _values, result); end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  def _reduce_592(val, _values, result); end
 | 
					  def _reduce_592(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_597(val, _values, result); end
 | 
					  def _reduce_593(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_598(val, _values, result); end
 | 
					  def _reduce_598(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def _reduce_599(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_6(val, _values, result); end
 | 
					  def _reduce_6(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_60(val, _values, result); end
 | 
					  def _reduce_60(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_602(val, _values, result); end
 | 
					  def _reduce_603(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_606(val, _values, result); end
 | 
					  def _reduce_607(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def _reduce_62(val, _values, result); end
 | 
					  def _reduce_62(val, _values, result); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -19416,6 +19429,10 @@ class RuboCop::AST::Node
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  def cask_block?(node=T.unsafe(nil)); end
 | 
					  def cask_block?(node=T.unsafe(nil)); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def find_pattern_type?(); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def forward_arg_type?(); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def key_node(node=T.unsafe(nil)); end
 | 
					  def key_node(node=T.unsafe(nil)); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def method_node(node=T.unsafe(nil)); end
 | 
					  def method_node(node=T.unsafe(nil)); end
 | 
				
			||||||
@ -24431,8 +24448,6 @@ module Tins::SexySingleton
 | 
				
			|||||||
  def dup(); end
 | 
					  def dup(); end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Tins::SexySingleton::SingletonClassMethods = Singleton::SingletonClassMethods
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
module Tins::SexySingleton
 | 
					module Tins::SexySingleton
 | 
				
			||||||
  def self.__init__(klass); end
 | 
					  def self.__init__(klass); end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -3,14 +3,10 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# typed: strong
 | 
					# typed: strong
 | 
				
			||||||
module DependencyCollector::Compat; end
 | 
					module DependencyCollector::Compat; end
 | 
				
			||||||
 | 
					module ELFShim::Metadata::PatchELF::PatchError; end
 | 
				
			||||||
 | 
					module ELFShim::PatchELF::PatchError; end
 | 
				
			||||||
 | 
					module ELFShim::PatchELF::Patcher; end
 | 
				
			||||||
module Homebrew::Error; end
 | 
					module Homebrew::Error; end
 | 
				
			||||||
module MacOS::CLT; end
 | 
					 | 
				
			||||||
module MacOS::CLT::PKG_PATH; end
 | 
					 | 
				
			||||||
module MacOS::Version; end
 | 
					 | 
				
			||||||
module MacOS::Version::SYMBOLS; end
 | 
					 | 
				
			||||||
module MacOS::X11; end
 | 
					 | 
				
			||||||
module MacOS::XQuartz; end
 | 
					 | 
				
			||||||
module MacOS::Xcode; end
 | 
					 | 
				
			||||||
module OS::Mac::Version::NULL; end
 | 
					module OS::Mac::Version::NULL; end
 | 
				
			||||||
module T::CompatibilityPatches::RSpecCompatibility::MethodDoubleExtensions; end
 | 
					module T::CompatibilityPatches::RSpecCompatibility::MethodDoubleExtensions; end
 | 
				
			||||||
module T::CompatibilityPatches::RSpecCompatibility::RecorderExtensions; end
 | 
					module T::CompatibilityPatches::RSpecCompatibility::RecorderExtensions; end
 | 
				
			||||||
 | 
				
			|||||||
@ -286,6 +286,7 @@ class Tap
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    config["forceautoupdate"] = force_auto_update unless force_auto_update.nil?
 | 
					    config["forceautoupdate"] = force_auto_update unless force_auto_update.nil?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Commands.rebuild_commands_completion_list
 | 
				
			||||||
    link_completions_and_manpages
 | 
					    link_completions_and_manpages
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    formatted_contents = contents.presence&.to_sentence&.dup&.prepend(" ")
 | 
					    formatted_contents = contents.presence&.to_sentence&.dup&.prepend(" ")
 | 
				
			||||||
@ -334,6 +335,8 @@ class Tap
 | 
				
			|||||||
    path.rmtree
 | 
					    path.rmtree
 | 
				
			||||||
    path.parent.rmdir_if_possible
 | 
					    path.parent.rmdir_if_possible
 | 
				
			||||||
    puts "Untapped#{formatted_contents} (#{abv})."
 | 
					    puts "Untapped#{formatted_contents} (#{abv})."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Commands.rebuild_commands_completion_list
 | 
				
			||||||
    clear_cache
 | 
					    clear_cache
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -13,4 +13,23 @@ describe "brew --cache", :integration_test do
 | 
				
			|||||||
      .and not_to_output.to_stderr
 | 
					      .and not_to_output.to_stderr
 | 
				
			||||||
      .and be_a_success
 | 
					      .and be_a_success
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it "prints the cache files for a given Cask" do
 | 
				
			||||||
 | 
					    expect { brew "--cache", cask_path("local-caffeine") }
 | 
				
			||||||
 | 
					      .to output(%r{#{HOMEBREW_CACHE}/downloads/[\da-f]{64}--caffeine\.zip}).to_stdout
 | 
				
			||||||
 | 
					      .and not_to_output.to_stderr
 | 
				
			||||||
 | 
					      .and be_a_success
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it "prints the cache files for a given Formula and Cask" do
 | 
				
			||||||
 | 
					    expect { brew "--cache", testball, cask_path("local-caffeine") }
 | 
				
			||||||
 | 
					      .to output(
 | 
				
			||||||
 | 
					        %r{
 | 
				
			||||||
 | 
					          #{HOMEBREW_CACHE}/downloads/[\da-f]{64}--testball-.*\n
 | 
				
			||||||
 | 
					          #{HOMEBREW_CACHE}/downloads/[\da-f]{64}--caffeine\.zip
 | 
				
			||||||
 | 
					        }x,
 | 
				
			||||||
 | 
					      ).to_stdout
 | 
				
			||||||
 | 
					      .and not_to_output.to_stderr
 | 
				
			||||||
 | 
					      .and be_a_success
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -1,17 +1,46 @@
 | 
				
			|||||||
# frozen_string_literal: true
 | 
					# frozen_string_literal: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require "cmd/shared_examples/args_parse"
 | 
					require "cmd/shared_examples/args_parse"
 | 
				
			||||||
 | 
					require "support/lib/config"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe "Homebrew.home_args" do
 | 
					describe "Homebrew.home_args" do
 | 
				
			||||||
  it_behaves_like "parseable arguments"
 | 
					  it_behaves_like "parseable arguments"
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe "brew home", :integration_test do
 | 
					describe "brew home", :integration_test do
 | 
				
			||||||
 | 
					  let(:testballhome_homepage) {
 | 
				
			||||||
 | 
					    Formula["testballhome"].homepage
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let(:local_caffeine_path) {
 | 
				
			||||||
 | 
					    cask_path("local-caffeine")
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let(:local_caffeine_homepage) {
 | 
				
			||||||
 | 
					    Cask::CaskLoader.load(local_caffeine_path).homepage
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  it "opens the homepage for a given Formula" do
 | 
					  it "opens the homepage for a given Formula" do
 | 
				
			||||||
    setup_test_formula "testballhome"
 | 
					    setup_test_formula "testballhome"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    expect { brew "home", "testballhome", "HOMEBREW_BROWSER" => "echo" }
 | 
					    expect { brew "home", "testballhome", "HOMEBREW_BROWSER" => "echo" }
 | 
				
			||||||
      .to output("#{Formula["testballhome"].homepage}\n").to_stdout
 | 
					      .to output(/#{testballhome_homepage}/).to_stdout
 | 
				
			||||||
 | 
					      .and not_to_output.to_stderr
 | 
				
			||||||
 | 
					      .and be_a_success
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it "opens the homepage for a given Cask" do
 | 
				
			||||||
 | 
					    expect { brew "home", cask_path("local-caffeine"), "HOMEBREW_BROWSER" => "echo" }
 | 
				
			||||||
 | 
					      .to output(/#{local_caffeine_homepage}/).to_stdout
 | 
				
			||||||
 | 
					      .and not_to_output.to_stderr
 | 
				
			||||||
 | 
					      .and be_a_success
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it "opens the homepages for a given formula and Cask" do
 | 
				
			||||||
 | 
					    setup_test_formula "testballhome"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    expect { brew "home", "testballhome", cask_path("local-caffeine"), "HOMEBREW_BROWSER" => "echo" }
 | 
				
			||||||
 | 
					      .to output(/#{testballhome_homepage} #{local_caffeine_homepage}/).to_stdout
 | 
				
			||||||
      .and not_to_output.to_stderr
 | 
					      .and not_to_output.to_stderr
 | 
				
			||||||
      .and be_a_success
 | 
					      .and be_a_success
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
				
			|||||||
@ -29,6 +29,7 @@ describe Hardware::CPU do
 | 
				
			|||||||
        :core2,
 | 
					        :core2,
 | 
				
			||||||
        :dothan,
 | 
					        :dothan,
 | 
				
			||||||
        :haswell,
 | 
					        :haswell,
 | 
				
			||||||
 | 
					        :icelake,
 | 
				
			||||||
        :ivybridge,
 | 
					        :ivybridge,
 | 
				
			||||||
        :kabylake,
 | 
					        :kabylake,
 | 
				
			||||||
        :merom,
 | 
					        :merom,
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,6 @@
 | 
				
			|||||||
# frozen_string_literal: true
 | 
					# frozen_string_literal: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					require "test/support/fixtures/testball"
 | 
				
			||||||
require "formula"
 | 
					require "formula"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe Formula do
 | 
					describe Formula do
 | 
				
			||||||
@ -101,4 +102,12 @@ describe Formula do
 | 
				
			|||||||
      expect(f.resources.first.url).to eq("on_linux")
 | 
					      expect(f.resources.first.url).to eq("on_linux")
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  describe "#shared_library" do
 | 
				
			||||||
 | 
					    it "generates a shared library string" do
 | 
				
			||||||
 | 
					      f = Testball.new
 | 
				
			||||||
 | 
					      expect(f.shared_library("foobar")).to eq("foobar.so")
 | 
				
			||||||
 | 
					      expect(f.shared_library("foobar", 2)).to eq("foobar.so.2")
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,6 @@
 | 
				
			|||||||
# frozen_string_literal: true
 | 
					# frozen_string_literal: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					require "test/support/fixtures/testball"
 | 
				
			||||||
require "formula"
 | 
					require "formula"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe Formula do
 | 
					describe Formula do
 | 
				
			||||||
@ -108,4 +109,12 @@ describe Formula do
 | 
				
			|||||||
      expect(f.resources.first.url).to eq("resource_macos")
 | 
					      expect(f.resources.first.url).to eq("resource_macos")
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  describe "#shared_library" do
 | 
				
			||||||
 | 
					    it "generates a shared library string" do
 | 
				
			||||||
 | 
					      f = Testball.new
 | 
				
			||||||
 | 
					      expect(f.shared_library("foobar")).to eq("foobar.dylib")
 | 
				
			||||||
 | 
					      expect(f.shared_library("foobar", 2)).to eq("foobar.2.dylib")
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -345,6 +345,101 @@ describe RuboCop::Cop::FormulaAudit::MpiCheck do
 | 
				
			|||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					describe RuboCop::Cop::FormulaAudit::ShellCmd do
 | 
				
			||||||
 | 
					  subject(:cop) { described_class.new }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  context "When auditing shell commands" do
 | 
				
			||||||
 | 
					    it "Utils.popen_read should become Utils.safe_popen_read" do
 | 
				
			||||||
 | 
					      expect_offense(<<~RUBY)
 | 
				
			||||||
 | 
					        class Foo < Formula
 | 
				
			||||||
 | 
					          def install
 | 
				
			||||||
 | 
					            Utils.popen_read "foo"
 | 
				
			||||||
 | 
					            ^^^^^^^^^^^^^^^^^^^^^^ Use `Utils.safe_popen_read` instead of `Utils.popen_read`
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      RUBY
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it "Utils.safe_popen_write should become Utils.popen_write" do
 | 
				
			||||||
 | 
					      expect_offense(<<~RUBY)
 | 
				
			||||||
 | 
					        class Foo < Formula
 | 
				
			||||||
 | 
					          def install
 | 
				
			||||||
 | 
					            Utils.popen_write "foo"
 | 
				
			||||||
 | 
					            ^^^^^^^^^^^^^^^^^^^^^^^ Use `Utils.safe_popen_write` instead of `Utils.popen_write`
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      RUBY
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it "does not correct Utils.popen_read in test block" do
 | 
				
			||||||
 | 
					      expect_no_offenses(<<~RUBY)
 | 
				
			||||||
 | 
					        class Foo < Formula
 | 
				
			||||||
 | 
					          def install; end
 | 
				
			||||||
 | 
					          test do
 | 
				
			||||||
 | 
					            Utils.popen_read "foo"
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      RUBY
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it "corrects Utils.popen_read to Utils.safe_popen_read" do
 | 
				
			||||||
 | 
					      source = <<~RUBY
 | 
				
			||||||
 | 
					        class Foo < Formula
 | 
				
			||||||
 | 
					          def install
 | 
				
			||||||
 | 
					            Utils.popen_read "foo"
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      RUBY
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      corrected_source = <<~RUBY
 | 
				
			||||||
 | 
					        class Foo < Formula
 | 
				
			||||||
 | 
					          def install
 | 
				
			||||||
 | 
					            Utils.safe_popen_read "foo"
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      RUBY
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      new_source = autocorrect_source(source)
 | 
				
			||||||
 | 
					      expect(new_source).to eq(corrected_source)
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it "corrects Utils.popen_write to Utils.safe_popen_write" do
 | 
				
			||||||
 | 
					      source = <<~RUBY
 | 
				
			||||||
 | 
					        class Foo < Formula
 | 
				
			||||||
 | 
					          def install
 | 
				
			||||||
 | 
					            Utils.popen_write "foo"
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      RUBY
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      corrected_source = <<~RUBY
 | 
				
			||||||
 | 
					        class Foo < Formula
 | 
				
			||||||
 | 
					          def install
 | 
				
			||||||
 | 
					            Utils.safe_popen_write "foo"
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      RUBY
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      new_source = autocorrect_source(source)
 | 
				
			||||||
 | 
					      expect(new_source).to eq(corrected_source)
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it "does not correct to Utils.safe_popen_read in test block" do
 | 
				
			||||||
 | 
					      source = <<~RUBY
 | 
				
			||||||
 | 
					        class Foo < Formula
 | 
				
			||||||
 | 
					          def install; end
 | 
				
			||||||
 | 
					          test do
 | 
				
			||||||
 | 
					            Utils.popen_write "foo"
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      RUBY
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      new_source = autocorrect_source(source)
 | 
				
			||||||
 | 
					      expect(new_source).to eq(source)
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe RuboCop::Cop::FormulaAudit::Miscellaneous do
 | 
					describe RuboCop::Cop::FormulaAudit::Miscellaneous do
 | 
				
			||||||
  subject(:cop) { described_class.new }
 | 
					  subject(:cop) { described_class.new }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -210,7 +210,7 @@ describe RuboCop::Cop::FormulaAudit::Text do
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
          def install
 | 
					          def install
 | 
				
			||||||
            system "cargo", "build"
 | 
					            system "cargo", "build"
 | 
				
			||||||
            ^^^^^^^^^^^^^^^^^^^^^^^ use \"cargo\", \"install\", \"--root\", prefix, \"--path\", \".\"
 | 
					            ^^^^^^^^^^^^^^^^^^^^^^^ use \"cargo\", \"install\", *std_cargo_args
 | 
				
			||||||
          end
 | 
					          end
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
      RUBY
 | 
					      RUBY
 | 
				
			||||||
 | 
				
			|||||||
@ -129,6 +129,8 @@ RSpec.configure do |config|
 | 
				
			|||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  config.before(:each, :needs_svn) do
 | 
					  config.before(:each, :needs_svn) do
 | 
				
			||||||
 | 
					    skip "subversion not installed." unless quiet_system "#{HOMEBREW_SHIMS_PATH}/scm/svn", "--version"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    svn_paths = PATH.new(ENV["PATH"])
 | 
					    svn_paths = PATH.new(ENV["PATH"])
 | 
				
			||||||
    if OS.mac?
 | 
					    if OS.mac?
 | 
				
			||||||
      xcrun_svn = Utils.popen_read("xcrun", "-f", "svn")
 | 
					      xcrun_svn = Utils.popen_read("xcrun", "-f", "svn")
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					testball_bottle-0.1.yosemite.bottle.tar.gz
 | 
				
			||||||
@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					testball_bottle-0.1.yosemite.bottle.tar.gz
 | 
				
			||||||
@ -7,7 +7,7 @@ cask "with-depends-on-macos-comparison" do
 | 
				
			|||||||
  url "file://#{TEST_FIXTURE_DIR}/cask/caffeine.zip"
 | 
					  url "file://#{TEST_FIXTURE_DIR}/cask/caffeine.zip"
 | 
				
			||||||
  homepage "https://brew.sh/with-depends-on-macos-comparison"
 | 
					  homepage "https://brew.sh/with-depends-on-macos-comparison"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  depends_on macos: ">= :catalina"
 | 
					  depends_on macos: ">= :yosemite"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  app "Caffeine.app"
 | 
					  app "Caffeine.app"
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,7 @@ describe Utils do
 | 
				
			|||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it "returns svn version if svn available" do
 | 
					    it "returns svn version if svn available" do
 | 
				
			||||||
      if File.executable? "/usr/bin/svn"
 | 
					      if quiet_system "#{HOMEBREW_SHIMS_PATH}/scm/svn", "--version"
 | 
				
			||||||
        expect(described_class).to be_svn_available
 | 
					        expect(described_class).to be_svn_available
 | 
				
			||||||
      else
 | 
					      else
 | 
				
			||||||
        expect(described_class).not_to be_svn_available
 | 
					        expect(described_class).not_to be_svn_available
 | 
				
			||||||
 | 
				
			|||||||
@ -70,7 +70,6 @@ If there's no Homebrew Portable Ruby available for your processor:
 | 
				
			|||||||
        fi
 | 
					        fi
 | 
				
			||||||
      done
 | 
					      done
 | 
				
			||||||
      IFS=$' \t\n' # Restore IFS to its default value
 | 
					      IFS=$' \t\n' # Restore IFS to its default value
 | 
				
			||||||
      [[ -z $HOMEBREW_RUBY_PATH ]] && onoe "Failed to find usable Ruby $required_ruby_version!"
 | 
					 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if [[ -n "$HOMEBREW_MACOS_SYSTEM_RUBY_NEW_ENOUGH" ]]
 | 
					    if [[ -n "$HOMEBREW_MACOS_SYSTEM_RUBY_NEW_ENOUGH" ]]
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,7 @@ $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/minitest-5.14.1/lib"
 | 
				
			|||||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/thread_safe-0.3.6/lib"
 | 
					$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/thread_safe-0.3.6/lib"
 | 
				
			||||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/tzinfo-1.2.7/lib"
 | 
					$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/tzinfo-1.2.7/lib"
 | 
				
			||||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/zeitwerk-2.3.0/lib"
 | 
					$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/zeitwerk-2.3.0/lib"
 | 
				
			||||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/activesupport-6.0.3.1/lib"
 | 
					$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/activesupport-6.0.3.2/lib"
 | 
				
			||||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/ast-2.4.1/lib"
 | 
					$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/ast-2.4.1/lib"
 | 
				
			||||||
$:.unshift "#{path}/"
 | 
					$:.unshift "#{path}/"
 | 
				
			||||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/extensions/universal-darwin-19/2.6.0/byebug-11.1.3"
 | 
					$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/extensions/universal-darwin-19/2.6.0/byebug-11.1.3"
 | 
				
			||||||
@ -44,9 +44,9 @@ $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/ntlm-http-0.1.1/lib"
 | 
				
			|||||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/webrobots-0.1.2/lib"
 | 
					$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/webrobots-0.1.2/lib"
 | 
				
			||||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/mechanize-2.7.6/lib"
 | 
					$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/mechanize-2.7.6/lib"
 | 
				
			||||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/mustache-1.1.1/lib"
 | 
					$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/mustache-1.1.1/lib"
 | 
				
			||||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/parallel-1.19.1/lib"
 | 
					$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/parallel-1.19.2/lib"
 | 
				
			||||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/parallel_tests-3.0.0/lib"
 | 
					$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/parallel_tests-3.0.0/lib"
 | 
				
			||||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/parser-2.7.1.3/lib"
 | 
					$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/parser-2.7.1.4/lib"
 | 
				
			||||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/plist-3.5.0/lib"
 | 
					$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/plist-3.5.0/lib"
 | 
				
			||||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rainbow-3.0.0/lib"
 | 
					$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rainbow-3.0.0/lib"
 | 
				
			||||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/extensions/universal-darwin-19/2.6.0/rdiscount-2.2.0.1"
 | 
					$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/extensions/universal-darwin-19/2.6.0/rdiscount-2.2.0.1"
 | 
				
			||||||
@ -65,7 +65,7 @@ $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rspec-wait-0.0.9/lib"
 | 
				
			|||||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-ast-0.0.3/lib"
 | 
					$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-ast-0.0.3/lib"
 | 
				
			||||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/ruby-progressbar-1.10.1/lib"
 | 
					$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/ruby-progressbar-1.10.1/lib"
 | 
				
			||||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/unicode-display_width-1.7.0/lib"
 | 
					$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/unicode-display_width-1.7.0/lib"
 | 
				
			||||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-0.85.1/lib"
 | 
					$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-0.86.0/lib"
 | 
				
			||||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-performance-1.6.1/lib"
 | 
					$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-performance-1.6.1/lib"
 | 
				
			||||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-rspec-1.40.0/lib"
 | 
					$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-rspec-1.40.0/lib"
 | 
				
			||||||
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/ruby-macho-2.2.0/lib"
 | 
					$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/ruby-macho-2.2.0/lib"
 | 
				
			||||||
 | 
				
			|||||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user