diff --git a/Library/Homebrew/env_config.rb b/Library/Homebrew/env_config.rb index e7a54a843a..85d5dde771 100644 --- a/Library/Homebrew/env_config.rb +++ b/Library/Homebrew/env_config.rb @@ -89,8 +89,8 @@ module Homebrew }, HOMEBREW_BREW_WRAPPER: { description: "If set, use wrapper to call `brew` rather than auto-detecting it.", - # TODO: uncomment line below and remove the line above when odeprecated. # We use backticks to render "Deprecated:" in bold. + # TODO: uncomment line below and remove the line above when odeprecated. # description: "`Deprecated:` If set, use wrapper to call `brew` rather than auto-detecting it.", }, HOMEBREW_BROWSER: { @@ -398,8 +398,8 @@ module Homebrew }, HOMEBREW_NO_FORCE_BREW_WRAPPER: { description: "If set, disables `$HOMEBREW_FORCE_BREW_WRAPPER` behaviour, even if set.", - # TODO: uncomment line below and remove the line above when odeprecated. # We use backticks to render "Deprecated:" in bold. + # TODO: uncomment line below and remove the line above when odeprecated. # description: "`Deprecated:` If set, disables `$HOMEBREW_FORCE_BREW_WRAPPER` behaviour, even if set.", boolean: true, }, @@ -556,10 +556,23 @@ module Homebrew end CUSTOM_IMPLEMENTATIONS = T.let(Set.new([ + :HOMEBREW_BREW_WRAPPER, :HOMEBREW_MAKE_JOBS, + :HOMEBREW_NO_FORCE_BREW_WRAPPER, :HOMEBREW_CASK_OPTS, ]).freeze, T::Set[Symbol]) + FALSY_VALUES = T.let(%w[false no off nil 0].freeze, T::Array[String]) + + sig { params(env: String, env_value: T.nilable(String)).void } + def check_falsy_values(env, env_value) + return unless FALSY_VALUES.include?(env_value&.downcase) + + odisabled "#{env}=#{env_value}", <<~EOS.chomp + #{env}=1 to enable and #{env}= (an empty value) to disable + EOS + end + ENVS.each do |env, hash| # Needs a custom implementation. next if CUSTOM_IMPLEMENTATIONS.include?(env) @@ -571,16 +584,10 @@ module Homebrew define_method(method_name) do env_value = ENV.fetch(env, nil) - # odeprecated "`HOMEBREW_NO_FORCE_BREW_WRAPPER`" if env == "HOMEBREW_NO_FORCE_BREW_WRAPPER" - falsy_values = %w[false no off nil 0] - if falsy_values.include?(env_value&.downcase) - odisabled "#{env}=#{env_value}", <<~EOS.chomp - #{env}=1 to enable and #{env}= (an empty value) to disable - EOS - end + check_falsy_values(env, env_value) - # TODO: Uncomment the remaining part of the line below after the deprecation/disable cycle. - env_value.present? # && !falsy_values.include(env_value.downcase) + # TODO: Uncomment the remaining part of the line below after `check_falsy_values` has been removed. + env_value.present? # && !FALSY_VALUES.include?(env_value.downcase) end elsif hash[:default].present? define_method(method_name) do @@ -588,14 +595,30 @@ module Homebrew end else define_method(method_name) do - # odeprecated "`HOMEBREW_BREW_WRAPPER`" if env == "HOMEBREW_BREW_WRAPPER" - ENV[env].presence end end end # Needs a custom implementation. + sig { returns(T::Boolean) } + def no_force_brew_wrapper? + # odeprecated "`HOMEBREW_NO_FORCE_BREW_WRAPPER`" + env = "HOMEBREW_NO_FORCE_BREW_WRAPPER" + env_value = ENV.fetch(env, nil) + + check_falsy_values(env, env_value) + + # TODO: Uncomment the remaining part of the line below after `check_falsy_values` has been removed. + env_value.present? # && !FALSY_VALUES.include?(env_value.downcase) + end + + sig { returns(T.nilable(String)) } + def brew_wrapper + # odeprecated "`HOMEBREW_BREW_WRAPPER`" + ENV["HOMEBREW_BREW_WRAPPER"].presence + end + sig { returns(String) } def make_jobs jobs = ENV["HOMEBREW_MAKE_JOBS"].to_i