Add HOMEBREW_UPGRADE_GREEDY_CASKS

A space-separated list of casks. Homebrew will act as if `--greedy`
was passed when upgrading any cask on this list.
This commit is contained in:
Mike McQuaid 2025-02-25 15:34:49 +00:00
parent be7e3ac2e1
commit b1559f38a0
No known key found for this signature in database
3 changed files with 16 additions and 2 deletions

View File

@ -42,9 +42,16 @@ module Cask
greedy = true if Homebrew::EnvConfig.upgrade_greedy?
greedy_casks = if (upgrade_greedy_casks = Homebrew::EnvConfig.upgrade_greedy_casks.presence)
upgrade_greedy_casks.split
else
[]
end
outdated_casks = if casks.empty?
Caskroom.casks(config: Config.from_args(args)).select do |cask|
cask.outdated?(greedy:, greedy_latest:,
cask_greedy = greedy || greedy_casks.include?(cask.token)
cask.outdated?(greedy: cask_greedy, greedy_latest:,
greedy_auto_updates:)
end
else
@ -78,7 +85,7 @@ module Cask
return false if outdated_casks.empty?
if casks.empty? && !greedy
if casks.empty? && !greedy && greedy_casks.empty?
if !greedy_auto_updates && !greedy_latest
ohai "Casks with 'auto_updates true' or 'version :latest' " \
"will not be upgraded; pass `--greedy` to upgrade them."

View File

@ -486,6 +486,10 @@ module Homebrew
description: "If set, pass `--greedy` to all cask upgrade commands.",
boolean: true,
},
HOMEBREW_UPGRADE_GREEDY_CASKS: {
description: "A space-separated list of casks. Homebrew will act as " \
"if `--greedy` was passed when upgrading any cask on this list.",
},
HOMEBREW_VERBOSE: {
description: "If set, always assume `--verbose` when running commands.",
boolean: true,

View File

@ -307,6 +307,9 @@ module Homebrew::EnvConfig
sig { returns(T::Boolean) }
def upgrade_greedy?; end
sig { returns(T.nilable(::String)) }
def upgrade_greedy_casks; end
sig { returns(T::Boolean) }
def verbose?; end