From 821fe738415fe87b80b44a53411d7d617647b712 Mon Sep 17 00:00:00 2001 From: Justin Klaassen Date: Sat, 24 Feb 2024 09:35:32 -0800 Subject: [PATCH] Add HOMEBREW_UPGRADE_GREEDY="auto-updates" and "latest" Fixes: #16735 --- Library/Homebrew/cask/upgrade.rb | 8 +++++++- Library/Homebrew/env_config.rb | 5 +++-- Library/Homebrew/env_config.rbi | 4 ++-- docs/Manpage.md | 2 +- manpages/brew.1 | 2 +- 5 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Library/Homebrew/cask/upgrade.rb b/Library/Homebrew/cask/upgrade.rb index 54e76880c6cac6..8cbade1fdff6d6 100644 --- a/Library/Homebrew/cask/upgrade.rb +++ b/Library/Homebrew/cask/upgrade.rb @@ -40,7 +40,13 @@ def self.upgrade_casks( quarantine = true if quarantine.nil? - greedy = true if Homebrew::EnvConfig.upgrade_greedy? + 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 + end 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. diff --git a/manpages/brew.1 b/manpages/brew.1 index 69941c531d2f64..81468437be9d2a 100644 --- a/manpages/brew.1 +++ b/manpages/brew.1 @@ -3464,7 +3464,7 @@ If set, use Pry for the \fBbrew irb\fR command\. \fBHOMEBREW_UPGRADE_GREEDY\fR . .br -If set, pass \fB\-\-greedy\fR to all cask upgrade commands\. +When set to "auto\-updates", "latest", or any other value (e\.g\. "1"), pass \fB\-\-greedy\-auto\-updates\fR, \fB\-\-greedy\-latest\fR, or \fB\-\-greedy\fR respectively to all cask upgrade commands\. . .TP \fBHOMEBREW_SIMULATE_MACOS_ON_LINUX\fR