From 178699cfbb3f09867c98822e47aecefc5e1a294e 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 | 6 +++++- Library/Homebrew/env_config.rb | 5 +++-- Library/Homebrew/env_config.rbi | 4 ++-- docs/Manpage.md | 2 +- 4 files changed, 11 insertions(+), 6 deletions(-) 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.