Merge pull request #14950 from issyl0/sorbet-autogenerate-envconfig-rbi
sorbet: Autogenerate the RBI file for `Homebrew::EnvConfig`
This commit is contained in:
commit
b4aac9d4a0
@ -66,6 +66,7 @@ module Homebrew
|
|||||||
|
|
||||||
ohai "Updating homegrown RBI files..."
|
ohai "Updating homegrown RBI files..."
|
||||||
safe_system "bundle", "exec", "ruby", "sorbet/custom_generators/tty.rb"
|
safe_system "bundle", "exec", "ruby", "sorbet/custom_generators/tty.rb"
|
||||||
|
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
|
||||||
|
|||||||
@ -1,7 +1,240 @@
|
|||||||
# typed: strict
|
# typed: strict
|
||||||
|
|
||||||
module Homebrew::EnvConfig
|
module Homebrew::EnvConfig
|
||||||
# This is necessary due to https://github.com/sorbet/sorbet/issues/6726
|
sig { returns(T.nilable(String)) }
|
||||||
sig { returns(String) }
|
def self.additional_google_analytics_id; end
|
||||||
|
|
||||||
|
sig { returns(T.nilable(String)) }
|
||||||
|
def self.all_proxy; end
|
||||||
|
|
||||||
|
sig { returns(Integer) }
|
||||||
def self.api_auto_update_secs; end
|
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::Boolean) }
|
||||||
|
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_compat?; 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_google_analytics?; 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.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.nilable(String)) }
|
||||||
|
def self.svn; end
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
|
def self.temp; end
|
||||||
|
|
||||||
|
sig { returns(T::Boolean) }
|
||||||
|
def self.update_to_tag?; end
|
||||||
|
|
||||||
|
sig { returns(T::Boolean) }
|
||||||
|
def self.verbose?; end
|
||||||
|
|
||||||
|
sig { returns(T::Boolean) }
|
||||||
|
def self.verbose_using_dots?; end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -2522,7 +2522,7 @@ class Formula
|
|||||||
log.flush
|
log.flush
|
||||||
if !verbose? || verbose_using_dots
|
if !verbose? || verbose_using_dots
|
||||||
puts "Last #{log_lines} lines from #{logfn}:"
|
puts "Last #{log_lines} lines from #{logfn}:"
|
||||||
Kernel.system "/usr/bin/tail", "-n", log_lines, logfn
|
Kernel.system "/usr/bin/tail", "-n", log_lines.to_s, logfn
|
||||||
end
|
end
|
||||||
log.puts
|
log.puts
|
||||||
|
|
||||||
|
|||||||
@ -285,8 +285,8 @@ class Resource
|
|||||||
|
|
||||||
# glibc-bootstrap
|
# glibc-bootstrap
|
||||||
if url.start_with?("https://github.com/Homebrew/glibc-bootstrap/releases/download")
|
if url.start_with?("https://github.com/Homebrew/glibc-bootstrap/releases/download")
|
||||||
if Homebrew::EnvConfig.artifact_domain.present?
|
if (artifact_domain = Homebrew::EnvConfig.artifact_domain.presence)
|
||||||
extra_urls << url.sub("https://github.com", Homebrew::EnvConfig.artifact_domain)
|
extra_urls << url.sub("https://github.com", artifact_domain)
|
||||||
end
|
end
|
||||||
if Homebrew::EnvConfig.bottle_domain != HOMEBREW_BOTTLE_DEFAULT_DOMAIN
|
if Homebrew::EnvConfig.bottle_domain != HOMEBREW_BOTTLE_DEFAULT_DOMAIN
|
||||||
tag, filename = url.split("/").last(2)
|
tag, filename = url.split("/").last(2)
|
||||||
@ -295,8 +295,8 @@ class Resource
|
|||||||
end
|
end
|
||||||
|
|
||||||
# PyPI packages: PEP 503 – Simple Repository API <https://peps.python.org/pep-0503>
|
# PyPI packages: PEP 503 – Simple Repository API <https://peps.python.org/pep-0503>
|
||||||
if Homebrew::EnvConfig.pip_index_url.present?
|
if (pip_index_url = Homebrew::EnvConfig.pip_index_url.presence)
|
||||||
pip_index_base_url = Homebrew::EnvConfig.pip_index_url.chomp("/").chomp("/simple")
|
pip_index_base_url = pip_index_url.chomp("/").chomp("/simple")
|
||||||
%w[https://files.pythonhosted.org https://pypi.org].each do |base_url|
|
%w[https://files.pythonhosted.org https://pypi.org].each do |base_url|
|
||||||
extra_urls << url.sub(base_url, pip_index_base_url) if url.start_with?("#{base_url}/packages")
|
extra_urls << url.sub(base_url, pip_index_base_url) if url.start_with?("#{base_url}/packages")
|
||||||
end
|
end
|
||||||
|
|||||||
42
Library/Homebrew/sorbet/custom_generators/env_config.rb
Normal file
42
Library/Homebrew/sorbet/custom_generators/env_config.rb
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
# 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.to_s)
|
||||||
|
|
||||||
|
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") unless method == methods.last
|
||||||
|
end
|
||||||
|
|
||||||
|
file.puts "end"
|
||||||
|
end
|
||||||
@ -4266,162 +4266,6 @@ class Homebrew::Completions::Variables
|
|||||||
def self.members(); end
|
def self.members(); end
|
||||||
end
|
end
|
||||||
|
|
||||||
module Homebrew::EnvConfig
|
|
||||||
def self.additional_google_analytics_id(); end
|
|
||||||
|
|
||||||
def self.all_proxy(); end
|
|
||||||
|
|
||||||
def self.api_domain(); end
|
|
||||||
|
|
||||||
def self.arch(); end
|
|
||||||
|
|
||||||
def self.artifact_domain(); end
|
|
||||||
|
|
||||||
def self.auto_update_secs(); end
|
|
||||||
|
|
||||||
def self.autoremove?(); end
|
|
||||||
|
|
||||||
def self.bat?(); end
|
|
||||||
|
|
||||||
def self.bat_config_path(); end
|
|
||||||
|
|
||||||
def self.bat_theme(); end
|
|
||||||
|
|
||||||
def self.bootsnap?(); end
|
|
||||||
|
|
||||||
def self.bottle_domain(); end
|
|
||||||
|
|
||||||
def self.brew_git_remote(); end
|
|
||||||
|
|
||||||
def self.browser(); end
|
|
||||||
|
|
||||||
def self.cache(); end
|
|
||||||
|
|
||||||
def self.cleanup_max_age_days(); end
|
|
||||||
|
|
||||||
def self.cleanup_periodic_full_days(); end
|
|
||||||
|
|
||||||
def self.color?(); end
|
|
||||||
|
|
||||||
def self.core_git_remote(); end
|
|
||||||
|
|
||||||
def self.curl_retries(); end
|
|
||||||
|
|
||||||
def self.curl_verbose?(); end
|
|
||||||
|
|
||||||
def self.curlrc?(); end
|
|
||||||
|
|
||||||
def self.debug?(); end
|
|
||||||
|
|
||||||
def self.developer?(); end
|
|
||||||
|
|
||||||
def self.disable_load_formula?(); end
|
|
||||||
|
|
||||||
def self.display(); end
|
|
||||||
|
|
||||||
def self.display_install_times?(); end
|
|
||||||
|
|
||||||
def self.docker_registry_basic_auth_token(); end
|
|
||||||
|
|
||||||
def self.docker_registry_token(); end
|
|
||||||
|
|
||||||
def self.editor(); end
|
|
||||||
|
|
||||||
def self.eval_all?(); end
|
|
||||||
|
|
||||||
def self.fail_log_lines(); end
|
|
||||||
|
|
||||||
def self.forbidden_licenses(); end
|
|
||||||
|
|
||||||
def self.force_brewed_ca_certificates?(); end
|
|
||||||
|
|
||||||
def self.force_brewed_curl?(); end
|
|
||||||
|
|
||||||
def self.force_brewed_git?(); end
|
|
||||||
|
|
||||||
def self.force_vendor_ruby?(); end
|
|
||||||
|
|
||||||
def self.ftp_proxy(); end
|
|
||||||
|
|
||||||
def self.git_email(); end
|
|
||||||
|
|
||||||
def self.git_name(); end
|
|
||||||
|
|
||||||
def self.git_path(); end
|
|
||||||
|
|
||||||
def self.github_api_token(); end
|
|
||||||
|
|
||||||
def self.github_packages_token(); end
|
|
||||||
|
|
||||||
def self.github_packages_user(); end
|
|
||||||
|
|
||||||
def self.http_proxy(); end
|
|
||||||
|
|
||||||
def self.https_proxy(); end
|
|
||||||
|
|
||||||
def self.install_badge(); end
|
|
||||||
|
|
||||||
def self.livecheck_watchlist(); end
|
|
||||||
|
|
||||||
def self.logs(); end
|
|
||||||
|
|
||||||
def self.no_analytics?(); end
|
|
||||||
|
|
||||||
def self.no_auto_update?(); end
|
|
||||||
|
|
||||||
def self.no_bootsnap?(); end
|
|
||||||
|
|
||||||
def self.no_cleanup_formulae(); end
|
|
||||||
|
|
||||||
def self.no_color?(); end
|
|
||||||
|
|
||||||
def self.no_compat?(); end
|
|
||||||
|
|
||||||
def self.no_emoji?(); end
|
|
||||||
|
|
||||||
def self.no_env_hints?(); end
|
|
||||||
|
|
||||||
def self.no_github_api?(); end
|
|
||||||
|
|
||||||
def self.no_google_analytics?(); end
|
|
||||||
|
|
||||||
def self.no_insecure_redirect?(); end
|
|
||||||
|
|
||||||
def self.no_install_cleanup?(); end
|
|
||||||
|
|
||||||
def self.no_install_from_api?(); end
|
|
||||||
|
|
||||||
def self.no_install_upgrade?(); end
|
|
||||||
|
|
||||||
def self.no_installed_dependents_check?(); end
|
|
||||||
|
|
||||||
def self.no_proxy(); end
|
|
||||||
|
|
||||||
def self.pip_index_url(); end
|
|
||||||
|
|
||||||
def self.pry?(); end
|
|
||||||
|
|
||||||
def self.simulate_macos_on_linux?(); end
|
|
||||||
|
|
||||||
def self.skip_or_later_bottles?(); end
|
|
||||||
|
|
||||||
def self.sorbet_runtime?(); end
|
|
||||||
|
|
||||||
def self.ssh_config_path(); end
|
|
||||||
|
|
||||||
def self.sudo_askpass(); end
|
|
||||||
|
|
||||||
def self.svn(); end
|
|
||||||
|
|
||||||
def self.temp(); end
|
|
||||||
|
|
||||||
def self.update_to_tag?(); end
|
|
||||||
|
|
||||||
def self.verbose?(); end
|
|
||||||
|
|
||||||
def self.verbose_using_dots?(); end
|
|
||||||
end
|
|
||||||
|
|
||||||
module Homebrew::Fetch
|
module Homebrew::Fetch
|
||||||
extend ::T::Private::Methods::MethodHooks
|
extend ::T::Private::Methods::MethodHooks
|
||||||
extend ::T::Private::Methods::SingletonMethodHooks
|
extend ::T::Private::Methods::SingletonMethodHooks
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user