Merge pull request #16980 from Homebrew/tapioca-compiler-for-envconfig-rbi
Convert the `EnvConfig` RBI generator to a Tapioca compiler
This commit is contained in:
		
						commit
						3f1ae21faa
					
				@ -50,9 +50,6 @@ module Homebrew
 | 
				
			|||||||
            # Prefer adding args here: Library/Homebrew/sorbet/tapioca/config.yml
 | 
					            # Prefer adding args here: Library/Homebrew/sorbet/tapioca/config.yml
 | 
				
			||||||
            tapioca_args = args.update_all? ? ["--all"] : []
 | 
					            tapioca_args = args.update_all? ? ["--all"] : []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            ohai "Updating homegrown RBI files..."
 | 
					 | 
				
			||||||
            safe_system "bundle", "exec", "ruby", "sorbet/custom_generators/env_config.rb"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            ohai "Updating Tapioca RBI files..."
 | 
					            ohai "Updating Tapioca RBI files..."
 | 
				
			||||||
            safe_system "bundle", "exec", "tapioca", "gem", *tapioca_args
 | 
					            safe_system "bundle", "exec", "tapioca", "gem", *tapioca_args
 | 
				
			||||||
            safe_system "bundle", "exec", "parlour"
 | 
					            safe_system "bundle", "exec", "parlour"
 | 
				
			||||||
 | 
				
			|||||||
@ -1,243 +0,0 @@
 | 
				
			|||||||
# typed: strict
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
module Homebrew::EnvConfig
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.all_proxy; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(Integer) }
 | 
					 | 
				
			||||||
  def self.api_auto_update_secs; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(String) }
 | 
					 | 
				
			||||||
  def self.api_domain; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(String) }
 | 
					 | 
				
			||||||
  def self.arch; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.artifact_domain; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.auto_update_secs; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.autoremove?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.bat?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.bat_config_path; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.bat_theme; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.bootsnap?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(String) }
 | 
					 | 
				
			||||||
  def self.bottle_domain; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(String) }
 | 
					 | 
				
			||||||
  def self.brew_git_remote; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.browser; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(String) }
 | 
					 | 
				
			||||||
  def self.cache; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(Integer) }
 | 
					 | 
				
			||||||
  def self.cleanup_max_age_days; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(Integer) }
 | 
					 | 
				
			||||||
  def self.cleanup_periodic_full_days; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.color?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(String) }
 | 
					 | 
				
			||||||
  def self.core_git_remote; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(String) }
 | 
					 | 
				
			||||||
  def self.curl_path; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(Integer) }
 | 
					 | 
				
			||||||
  def self.curl_retries; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.curl_verbose?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.curlrc; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.debug?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.developer?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.disable_load_formula?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.display; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.display_install_times?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.docker_registry_basic_auth_token; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.docker_registry_token; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.editor; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.eval_all?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(Integer) }
 | 
					 | 
				
			||||||
  def self.fail_log_lines; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.forbidden_licenses; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.force_brewed_ca_certificates?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.force_brewed_curl?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.force_brewed_git?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.force_vendor_ruby?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.ftp_proxy; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.git_email; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.git_name; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(String) }
 | 
					 | 
				
			||||||
  def self.git_path; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.github_api_token; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.github_packages_token; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.github_packages_user; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.http_proxy; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.https_proxy; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(String) }
 | 
					 | 
				
			||||||
  def self.install_badge; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(String) }
 | 
					 | 
				
			||||||
  def self.livecheck_watchlist; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(String) }
 | 
					 | 
				
			||||||
  def self.logs; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.no_analytics?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.no_auto_update?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.no_bootsnap?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.no_cleanup_formulae; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.no_color?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.no_emoji?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.no_env_hints?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.no_github_api?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.no_insecure_redirect?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.no_install_cleanup?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.no_install_from_api?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.no_install_upgrade?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.no_installed_dependents_check?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.no_proxy; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.no_update_report_new?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.pip_index_url; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.pry?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.simulate_macos_on_linux?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.skip_or_later_bottles?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.sorbet_runtime?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.ssh_config_path; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.sudo_askpass; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.sudo_through_sudo_user?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T.nilable(String)) }
 | 
					 | 
				
			||||||
  def self.svn; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.system_env_takes_priority?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(String) }
 | 
					 | 
				
			||||||
  def self.temp; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.update_to_tag?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.upgrade_greedy?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.verbose?; end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sig { returns(T::Boolean) }
 | 
					 | 
				
			||||||
  def self.verbose_using_dots?; end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
@ -1,42 +0,0 @@
 | 
				
			|||||||
# typed: true
 | 
					 | 
				
			||||||
# frozen_string_literal: true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
require_relative "../../global"
 | 
					 | 
				
			||||||
require_relative "../../env_config"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
File.open("#{__dir__}/../../env_config.rbi", "w") do |file|
 | 
					 | 
				
			||||||
  file.write(<<~RUBY)
 | 
					 | 
				
			||||||
    # typed: strict
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    module Homebrew::EnvConfig
 | 
					 | 
				
			||||||
  RUBY
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  dynamic_methods = {}
 | 
					 | 
				
			||||||
  Homebrew::EnvConfig::ENVS.each do |env, hash|
 | 
					 | 
				
			||||||
    next if Homebrew::EnvConfig::CUSTOM_IMPLEMENTATIONS.include?(env)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    name = Homebrew::EnvConfig.env_method_name(env, hash)
 | 
					 | 
				
			||||||
    dynamic_methods[name] = { default: hash[:default] }
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  methods = Homebrew::EnvConfig.methods(false).map(&:to_s).select { |method| dynamic_methods.key?(method) }.sort
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  methods.each do |method|
 | 
					 | 
				
			||||||
    return_type = if method.end_with?("?")
 | 
					 | 
				
			||||||
      T::Boolean
 | 
					 | 
				
			||||||
    elsif (default = dynamic_methods[method][:default])
 | 
					 | 
				
			||||||
      default.class
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
      T.nilable(String)
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    file.write(<<-RUBY)
 | 
					 | 
				
			||||||
  sig { returns(#{return_type}) }
 | 
					 | 
				
			||||||
  def self.#{method}; end
 | 
					 | 
				
			||||||
    RUBY
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    file.write("\n") if method != methods.last
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  file.puts "end"
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
							
								
								
									
										249
									
								
								Library/Homebrew/sorbet/rbi/dsl/homebrew/env_config.rbi
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										249
									
								
								Library/Homebrew/sorbet/rbi/dsl/homebrew/env_config.rbi
									
									
									
										generated
									
									
									
										Normal file
									
								
							@ -0,0 +1,249 @@
 | 
				
			|||||||
 | 
					# typed: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# DO NOT EDIT MANUALLY
 | 
				
			||||||
 | 
					# This is an autogenerated file for dynamic methods in `Homebrew::EnvConfig`.
 | 
				
			||||||
 | 
					# Please instead update this file by running `bin/tapioca dsl Homebrew::EnvConfig`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module Homebrew::EnvConfig
 | 
				
			||||||
 | 
					  class << self
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def all_proxy; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(Integer) }
 | 
				
			||||||
 | 
					    def api_auto_update_secs; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(String) }
 | 
				
			||||||
 | 
					    def api_domain; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(String) }
 | 
				
			||||||
 | 
					    def arch; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def artifact_domain; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def auto_update_secs; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def autoremove?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def bat?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def bat_config_path; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def bat_theme; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def bootsnap?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(String) }
 | 
				
			||||||
 | 
					    def bottle_domain; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(String) }
 | 
				
			||||||
 | 
					    def brew_git_remote; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def browser; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(String) }
 | 
				
			||||||
 | 
					    def cache; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(Integer) }
 | 
				
			||||||
 | 
					    def cleanup_max_age_days; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(Integer) }
 | 
				
			||||||
 | 
					    def cleanup_periodic_full_days; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def color?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(String) }
 | 
				
			||||||
 | 
					    def core_git_remote; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(String) }
 | 
				
			||||||
 | 
					    def curl_path; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(Integer) }
 | 
				
			||||||
 | 
					    def curl_retries; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def curl_verbose?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def curlrc; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def debug?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def developer?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def disable_load_formula?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def display; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def display_install_times?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def docker_registry_basic_auth_token; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def docker_registry_token; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def editor; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def eval_all?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(Integer) }
 | 
				
			||||||
 | 
					    def fail_log_lines; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def forbidden_licenses; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def force_brewed_ca_certificates?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def force_brewed_curl?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def force_brewed_git?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def force_vendor_ruby?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def ftp_proxy; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def git_email; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def git_name; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(String) }
 | 
				
			||||||
 | 
					    def git_path; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def github_api_token; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def github_packages_token; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def github_packages_user; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def http_proxy; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def https_proxy; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(String) }
 | 
				
			||||||
 | 
					    def install_badge; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(String) }
 | 
				
			||||||
 | 
					    def livecheck_watchlist; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(String) }
 | 
				
			||||||
 | 
					    def logs; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def no_analytics?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def no_auto_update?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def no_bootsnap?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def no_cleanup_formulae; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def no_color?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def no_emoji?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def no_env_hints?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def no_github_api?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def no_insecure_redirect?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def no_install_cleanup?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def no_install_from_api?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def no_install_upgrade?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def no_installed_dependents_check?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def no_proxy; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def no_update_report_new?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def pip_index_url; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def pry?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def simulate_macos_on_linux?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def skip_or_later_bottles?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def sorbet_runtime?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def ssh_config_path; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def sudo_askpass; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def sudo_through_sudo_user?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T.nilable(::String)) }
 | 
				
			||||||
 | 
					    def svn; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def system_env_takes_priority?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(String) }
 | 
				
			||||||
 | 
					    def temp; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def update_to_tag?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def upgrade_greedy?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def verbose?; end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sig { returns(T::Boolean) }
 | 
				
			||||||
 | 
					    def verbose_using_dots?; end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										44
									
								
								Library/Homebrew/sorbet/tapioca/compilers/env_config.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								Library/Homebrew/sorbet/tapioca/compilers/env_config.rb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,44 @@
 | 
				
			|||||||
 | 
					# typed: strict
 | 
				
			||||||
 | 
					# frozen_string_literal: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					require_relative "../../../global"
 | 
				
			||||||
 | 
					require "env_config"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module Tapioca
 | 
				
			||||||
 | 
					  module Compilers
 | 
				
			||||||
 | 
					    class EnvConfig < Tapioca::Dsl::Compiler
 | 
				
			||||||
 | 
					      # FIXME: Enable cop again when https://github.com/sorbet/sorbet/issues/3532 is fixed.
 | 
				
			||||||
 | 
					      # rubocop:disable Style/MutableConstant
 | 
				
			||||||
 | 
					      ConstantType = type_member { { fixed: Module } }
 | 
				
			||||||
 | 
					      # rubocop:enable Style/MutableConstant
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      sig { override.returns(T::Enumerable[Module]) }
 | 
				
			||||||
 | 
					      def self.gather_constants = [Homebrew::EnvConfig]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      sig { override.void }
 | 
				
			||||||
 | 
					      def decorate
 | 
				
			||||||
 | 
					        root.create_module(T.must(constant.name)) do |mod|
 | 
				
			||||||
 | 
					          dynamic_methods = {}
 | 
				
			||||||
 | 
					          Homebrew::EnvConfig::ENVS.each do |env, hash|
 | 
				
			||||||
 | 
					            next if Homebrew::EnvConfig::CUSTOM_IMPLEMENTATIONS.include?(env)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            name = Homebrew::EnvConfig.env_method_name(env, hash)
 | 
				
			||||||
 | 
					            dynamic_methods[name] = hash[:default]
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          dynamic_methods.each do |method, default|
 | 
				
			||||||
 | 
					            return_type = if method.end_with?("?")
 | 
				
			||||||
 | 
					              T::Boolean
 | 
				
			||||||
 | 
					            elsif default
 | 
				
			||||||
 | 
					              default.class
 | 
				
			||||||
 | 
					            else
 | 
				
			||||||
 | 
					              T.nilable(String)
 | 
				
			||||||
 | 
					            end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            mod.create_method(method, return_type:, class_method: true)
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user