diff --git a/Library/Homebrew/cask/upgrade.rb b/Library/Homebrew/cask/upgrade.rb
index 54e76880c6cac6..d2acd53176f592 100644
--- a/Library/Homebrew/cask/upgrade.rb
+++ b/Library/Homebrew/cask/upgrade.rb
@@ -40,7 +40,11 @@ def self.upgrade_casks(
quarantine = true if quarantine.nil?
- greedy = true if Homebrew::EnvConfig.upgrade_greedy?
+ case Homebrew::EnvConfig.upgrade_greedy
+ when "auto-updates" then greedy_auto_updates = true
+ when "latest" then greedy_latest = true
+ else greedy = true
+ end if Homebrew::EnvConfig.upgrade_greedy
outdated_casks = if casks.empty?
Caskroom.casks(config: Config.from_args(args)).select do |cask|
diff --git a/Library/Homebrew/env_config.rb b/Library/Homebrew/env_config.rb
index c5d04c4082bad3..30ac7225d4bd8d 100644
--- a/Library/Homebrew/env_config.rb
+++ b/Library/Homebrew/env_config.rb
@@ -341,8 +341,9 @@ module EnvConfig
boolean: true,
},
HOMEBREW_UPGRADE_GREEDY: {
- description: "If set, pass `--greedy` to all cask upgrade commands.",
- boolean: true,
+ description: "When set to \"auto-updates\", \"latest\", or any other value (e.g. \"1\"), pass " \
+ "`--greedy-auto-updates`, `--greedy-latest`, or `--greedy` respectively to all cask " \
+ "upgrade commands.",
},
HOMEBREW_SIMULATE_MACOS_ON_LINUX: {
description: "If set, running Homebrew on Linux will simulate certain macOS code paths. This is useful " \
diff --git a/Library/Homebrew/env_config.rbi b/Library/Homebrew/env_config.rbi
index 1fa98249b3404e..91bc33bb2fdcde 100644
--- a/Library/Homebrew/env_config.rbi
+++ b/Library/Homebrew/env_config.rbi
@@ -232,8 +232,8 @@ module Homebrew::EnvConfig
sig { returns(T::Boolean) }
def self.update_to_tag?; end
- sig { returns(T::Boolean) }
- def self.upgrade_greedy?; end
+ sig { returns(T.nilable(String)) }
+ def self.upgrade_greedy; end
sig { returns(T::Boolean) }
def self.verbose?; end
diff --git a/docs/Manpage.md b/docs/Manpage.md
index 2abe611ece4b56..00801749302c0d 100644
--- a/docs/Manpage.md
+++ b/docs/Manpage.md
@@ -2357,7 +2357,7 @@ command execution e.g. `$(cat file)`.
If set, use Pry for the `brew irb` command.
- `HOMEBREW_UPGRADE_GREEDY`
-
If set, pass `--greedy` to all cask upgrade commands.
+
When set to "auto-updates", "latest", or any other value (e.g. "1"), pass `--greedy-auto-updates`, `--greedy-latest`, or `--greedy` respectively to all cask upgrade commands.
- `HOMEBREW_SIMULATE_MACOS_ON_LINUX`
If set, running Homebrew on Linux will simulate certain macOS code paths. This is useful when auditing macOS formulae while on Linux.