diff --git a/Library/Homebrew/cask/cask_loader.rb b/Library/Homebrew/cask/cask_loader.rb index 1f6a7a285c..a54085b217 100644 --- a/Library/Homebrew/cask/cask_loader.rb +++ b/Library/Homebrew/cask/cask_loader.rb @@ -349,6 +349,7 @@ module Cask string.to_s .gsub(HOMEBREW_HOME_PLACEHOLDER, Dir.home) .gsub(HOMEBREW_PREFIX_PLACEHOLDER, HOMEBREW_PREFIX) + .gsub(HOMEBREW_CELLAR_PLACEHOLDER, HOMEBREW_CELLAR) .gsub(HOMEBREW_CASK_APPDIR_PLACEHOLDER, appdir) end diff --git a/Library/Homebrew/extend/api_hashable.rb b/Library/Homebrew/extend/api_hashable.rb index 0527a94938..e774a74897 100644 --- a/Library/Homebrew/extend/api_hashable.rb +++ b/Library/Homebrew/extend/api_hashable.rb @@ -8,9 +8,11 @@ module APIHashable # Apply monkeypatches for API generation @old_homebrew_prefix = HOMEBREW_PREFIX + @old_homebrew_cellar = HOMEBREW_CELLAR @old_home = Dir.home Object.send(:remove_const, :HOMEBREW_PREFIX) Object.const_set(:HOMEBREW_PREFIX, Pathname.new(HOMEBREW_PREFIX_PLACEHOLDER)) + Object.const_set(:HOMEBREW_CELLAR, Pathname.new(HOMEBREW_CELLAR_PLACEHOLDER)) ENV["HOME"] = HOMEBREW_HOME_PLACEHOLDER @generating_hash = true @@ -22,6 +24,8 @@ module APIHashable # Revert monkeypatches for API generation Object.send(:remove_const, :HOMEBREW_PREFIX) Object.const_set(:HOMEBREW_PREFIX, @old_homebrew_prefix) + Object.send(:remove_const, :HOMEBREW_CELLAR) + Object.const_set(:HOMEBREW_CELLAR, @old_homebrew_cellar) ENV["HOME"] = @old_home @generating_hash = false diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 9f4bb2668d..5f544a0db7 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -2173,7 +2173,8 @@ class Formula "conflicts_with" => conflicts.map(&:name), "conflicts_with_reasons" => conflicts.map(&:reason), "link_overwrite" => self.class.link_overwrite_paths.to_a, - "caveats" => caveats&.gsub(HOMEBREW_PREFIX, HOMEBREW_PREFIX_PLACEHOLDER), + "caveats" => caveats&.gsub(HOMEBREW_PREFIX, HOMEBREW_PREFIX_PLACEHOLDER) + &.gsub(HOMEBREW_CELLAR, HOMEBREW_CELLAR_PLACEHOLDER), "installed" => [], "linked_keg" => linked_version&.to_s, "pinned" => pinned?, diff --git a/Library/Homebrew/formulary.rb b/Library/Homebrew/formulary.rb index b3802d71ca..fd9673e953 100644 --- a/Library/Homebrew/formulary.rb +++ b/Library/Homebrew/formulary.rb @@ -342,6 +342,7 @@ module Formulary def caveats self.class.instance_variable_get(:@caveats_string) &.gsub(HOMEBREW_PREFIX_PLACEHOLDER, HOMEBREW_PREFIX) + &.gsub(HOMEBREW_CELLAR_PLACEHOLDER, HOMEBREW_CELLAR) &.gsub(HOMEBREW_HOME_PLACEHOLDER, Dir.home) end diff --git a/Library/Homebrew/global.rb b/Library/Homebrew/global.rb index 33a863003c..9c1803157d 100644 --- a/Library/Homebrew/global.rb +++ b/Library/Homebrew/global.rb @@ -57,6 +57,7 @@ HOMEBREW_MACOS_ARM_DEFAULT_REPOSITORY = ENV.fetch("HOMEBREW_MACOS_ARM_DEFAULT_RE HOMEBREW_LINUX_DEFAULT_PREFIX = ENV.fetch("HOMEBREW_LINUX_DEFAULT_PREFIX").freeze HOMEBREW_LINUX_DEFAULT_REPOSITORY = ENV.fetch("HOMEBREW_LINUX_DEFAULT_REPOSITORY").freeze HOMEBREW_PREFIX_PLACEHOLDER = "$HOMEBREW_PREFIX" +HOMEBREW_CELLAR_PLACEHOLDER = "$HOMEBREW_CELLAR" # Needs a leading slash to avoid `File.expand.path` complaining about non-absolute home. HOMEBREW_HOME_PLACEHOLDER = "/$HOME" HOMEBREW_CASK_APPDIR_PLACEHOLDER = "$APPDIR" diff --git a/Library/Homebrew/service.rb b/Library/Homebrew/service.rb index a7dd6625c2..99b23a8620 100644 --- a/Library/Homebrew/service.rb +++ b/Library/Homebrew/service.rb @@ -633,6 +633,7 @@ module Homebrew sig { params(string: String).returns(String) } def self.replace_placeholders(string) string.gsub(HOMEBREW_PREFIX_PLACEHOLDER, HOMEBREW_PREFIX) + .gsub(HOMEBREW_CELLAR_PLACEHOLDER, HOMEBREW_CELLAR) .gsub(HOMEBREW_HOME_PLACEHOLDER, Dir.home) end end diff --git a/Library/Homebrew/sorbet/rbi/hidden-definitions/hidden.rbi b/Library/Homebrew/sorbet/rbi/hidden-definitions/hidden.rbi index 2135b0a8a8..77949f7edb 100644 --- a/Library/Homebrew/sorbet/rbi/hidden-definitions/hidden.rbi +++ b/Library/Homebrew/sorbet/rbi/hidden-definitions/hidden.rbi @@ -5174,6 +5174,7 @@ class Object HOMEBREW_CASK_APPDIR_PLACEHOLDER = ::T.let(nil, ::T.untyped) HOMEBREW_CASK_TAP_CASK_REGEX = ::T.let(nil, ::T.untyped) HOMEBREW_CELLAR = ::T.let(nil, ::T.untyped) + HOMEBREW_CELLAR_PLACEHOLDER = ::T.let(nil, ::T.untyped) HOMEBREW_CORE_DEFAULT_GIT_REMOTE = ::T.let(nil, ::T.untyped) HOMEBREW_DATA_PATH = ::T.let(nil, ::T.untyped) HOMEBREW_DEFAULT_CACHE = ::T.let(nil, ::T.untyped)