mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
Merge pull request #11629 from bevanjkay/upgrade_outdated_skipunversioned
adds an option to skip unversioned casks in outdated and upgrade command
This commit is contained in:
commit
b3dd9fb42f
@ -113,16 +113,19 @@ module Cask
|
|||||||
@caskroom_path ||= Caskroom.path.join(token)
|
@caskroom_path ||= Caskroom.path.join(token)
|
||||||
end
|
end
|
||||||
|
|
||||||
def outdated?(greedy: false)
|
def outdated?(greedy: false, greedy_latest: false, greedy_auto_updates: false)
|
||||||
!outdated_versions(greedy: greedy).empty?
|
!outdated_versions(greedy: greedy, greedy_latest: greedy_latest,
|
||||||
|
greedy_auto_updates: greedy_auto_updates).empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
def outdated_versions(greedy: false)
|
def outdated_versions(greedy: false, greedy_latest: false, greedy_auto_updates: false)
|
||||||
# special case: tap version is not available
|
# special case: tap version is not available
|
||||||
return [] if version.nil?
|
return [] if version.nil?
|
||||||
|
|
||||||
if greedy
|
if greedy || (greedy_latest && greedy_auto_updates) || (greedy_auto_updates && auto_updates)
|
||||||
return versions if version.latest?
|
return versions if version.latest?
|
||||||
|
elsif greedy_latest && version.latest?
|
||||||
|
return versions
|
||||||
elsif auto_updates
|
elsif auto_updates
|
||||||
return []
|
return []
|
||||||
end
|
end
|
||||||
@ -137,10 +140,11 @@ module Cask
|
|||||||
installed.reject { |v| v == version }
|
installed.reject { |v| v == version }
|
||||||
end
|
end
|
||||||
|
|
||||||
def outdated_info(greedy, verbose, json)
|
def outdated_info(greedy, verbose, json, greedy_latest, greedy_auto_updates)
|
||||||
return token if !verbose && !json
|
return token if !verbose && !json
|
||||||
|
|
||||||
installed_versions = outdated_versions(greedy: greedy).join(", ")
|
installed_versions = outdated_versions(greedy: greedy, greedy_latest: greedy_latest,
|
||||||
|
greedy_auto_updates: greedy_auto_updates).join(", ")
|
||||||
|
|
||||||
if json
|
if json
|
||||||
{
|
{
|
||||||
|
@ -19,6 +19,12 @@ module Cask
|
|||||||
[:switch, "--greedy", {
|
[:switch, "--greedy", {
|
||||||
description: "Also include casks with `auto_updates true` or `version :latest`.",
|
description: "Also include casks with `auto_updates true` or `version :latest`.",
|
||||||
}],
|
}],
|
||||||
|
[:switch, "--greedy-latest", {
|
||||||
|
description: "Also include casks with `version :latest`.",
|
||||||
|
}],
|
||||||
|
[:switch, "--greedy-auto-updates", {
|
||||||
|
description: "Also include casks with `auto_updates true`.",
|
||||||
|
}],
|
||||||
].freeze
|
].freeze
|
||||||
|
|
||||||
sig { returns(Homebrew::CLI::Parser) }
|
sig { returns(Homebrew::CLI::Parser) }
|
||||||
@ -40,30 +46,34 @@ module Cask
|
|||||||
verbose = ($stdout.tty? || args.verbose?) && !args.quiet?
|
verbose = ($stdout.tty? || args.verbose?) && !args.quiet?
|
||||||
self.class.upgrade_casks(
|
self.class.upgrade_casks(
|
||||||
*casks,
|
*casks,
|
||||||
force: args.force?,
|
force: args.force?,
|
||||||
greedy: args.greedy?,
|
greedy: args.greedy?,
|
||||||
dry_run: args.dry_run?,
|
greedy_latest: args.greedy_latest?,
|
||||||
binaries: args.binaries?,
|
greedy_auto_updates: args.greedy_auto_updates?,
|
||||||
quarantine: args.quarantine?,
|
dry_run: args.dry_run?,
|
||||||
require_sha: args.require_sha?,
|
binaries: args.binaries?,
|
||||||
skip_cask_deps: args.skip_cask_deps?,
|
quarantine: args.quarantine?,
|
||||||
verbose: verbose,
|
require_sha: args.require_sha?,
|
||||||
args: args,
|
skip_cask_deps: args.skip_cask_deps?,
|
||||||
|
verbose: verbose,
|
||||||
|
args: args,
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
sig {
|
sig {
|
||||||
params(
|
params(
|
||||||
casks: Cask,
|
casks: Cask,
|
||||||
args: Homebrew::CLI::Args,
|
args: Homebrew::CLI::Args,
|
||||||
force: T.nilable(T::Boolean),
|
force: T.nilable(T::Boolean),
|
||||||
greedy: T.nilable(T::Boolean),
|
greedy: T.nilable(T::Boolean),
|
||||||
dry_run: T.nilable(T::Boolean),
|
greedy_latest: T.nilable(T::Boolean),
|
||||||
skip_cask_deps: T.nilable(T::Boolean),
|
greedy_auto_updates: T.nilable(T::Boolean),
|
||||||
verbose: T.nilable(T::Boolean),
|
dry_run: T.nilable(T::Boolean),
|
||||||
binaries: T.nilable(T::Boolean),
|
skip_cask_deps: T.nilable(T::Boolean),
|
||||||
quarantine: T.nilable(T::Boolean),
|
verbose: T.nilable(T::Boolean),
|
||||||
require_sha: T.nilable(T::Boolean),
|
binaries: T.nilable(T::Boolean),
|
||||||
|
quarantine: T.nilable(T::Boolean),
|
||||||
|
require_sha: T.nilable(T::Boolean),
|
||||||
).returns(T::Boolean)
|
).returns(T::Boolean)
|
||||||
}
|
}
|
||||||
def self.upgrade_casks(
|
def self.upgrade_casks(
|
||||||
@ -71,6 +81,8 @@ module Cask
|
|||||||
args:,
|
args:,
|
||||||
force: false,
|
force: false,
|
||||||
greedy: false,
|
greedy: false,
|
||||||
|
greedy_latest: false,
|
||||||
|
greedy_auto_updates: false,
|
||||||
dry_run: false,
|
dry_run: false,
|
||||||
skip_cask_deps: false,
|
skip_cask_deps: false,
|
||||||
verbose: false,
|
verbose: false,
|
||||||
@ -83,7 +95,8 @@ module Cask
|
|||||||
|
|
||||||
outdated_casks = if casks.empty?
|
outdated_casks = if casks.empty?
|
||||||
Caskroom.casks(config: Config.from_args(args)).select do |cask|
|
Caskroom.casks(config: Config.from_args(args)).select do |cask|
|
||||||
cask.outdated?(greedy: greedy)
|
cask.outdated?(greedy: greedy, greedy_latest: args.greedy_latest?,
|
||||||
|
greedy_auto_updates: args.greedy_auto_updates?)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
casks.select do |cask|
|
casks.select do |cask|
|
||||||
@ -107,7 +120,16 @@ module Cask
|
|||||||
return false if outdated_casks.empty?
|
return false if outdated_casks.empty?
|
||||||
|
|
||||||
if casks.empty? && !greedy
|
if casks.empty? && !greedy
|
||||||
ohai "Casks with 'auto_updates' or 'version :latest' will not be upgraded; pass `--greedy` to upgrade them."
|
if !args.greedy_auto_updates? && !args.greedy_latest?
|
||||||
|
ohai "Casks with 'auto_updates true' or 'version :latest'
|
||||||
|
will not be upgraded; pass `--greedy` to upgrade them."
|
||||||
|
end
|
||||||
|
if args.greedy_auto_updates? && !args.greedy_latest?
|
||||||
|
ohai "Casks with 'version :latest' will not be upgraded; pass `--greedy-latest` to upgrade them."
|
||||||
|
end
|
||||||
|
if !args.greedy_auto_updates? && args.greedy_latest?
|
||||||
|
ohai "Casks with 'auto_updates true' will not be upgraded; pass `--greedy-auto-updates` to upgrade them."
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
verb = dry_run ? "Would upgrade" : "Upgrading"
|
verb = dry_run ? "Would upgrade" : "Upgrading"
|
||||||
|
@ -37,7 +37,13 @@ module Homebrew
|
|||||||
"formula is outdated. Otherwise, the repository's HEAD will only be checked for "\
|
"formula is outdated. Otherwise, the repository's HEAD will only be checked for "\
|
||||||
"updates when a new stable or development version has been released."
|
"updates when a new stable or development version has been released."
|
||||||
switch "--greedy",
|
switch "--greedy",
|
||||||
description: "Print outdated casks with `auto_updates` or `version :latest`."
|
description: "Print outdated casks with `auto_updates true` or `version :latest`."
|
||||||
|
|
||||||
|
switch "--greedy-latest",
|
||||||
|
description: "Print outdated casks including those with `version :latest`."
|
||||||
|
|
||||||
|
switch "--greedy-auto-updates",
|
||||||
|
description: "Print outdated casks including those with `auto_updates true`."
|
||||||
|
|
||||||
conflicts "--quiet", "--verbose", "--json"
|
conflicts "--quiet", "--verbose", "--json"
|
||||||
conflicts "--formula", "--cask"
|
conflicts "--formula", "--cask"
|
||||||
@ -119,7 +125,7 @@ module Homebrew
|
|||||||
else
|
else
|
||||||
c = formula_or_cask
|
c = formula_or_cask
|
||||||
|
|
||||||
puts c.outdated_info(args.greedy?, verbose?, false)
|
puts c.outdated_info(args.greedy?, verbose?, false, args.greedy_latest?, args.greedy_auto_updates?)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -144,7 +150,8 @@ module Homebrew
|
|||||||
else
|
else
|
||||||
c = formula_or_cask
|
c = formula_or_cask
|
||||||
|
|
||||||
c.outdated_info(args.greedy?, verbose?, true)
|
c.outdated_info(args.greedy?, verbose?, true, greedy_latest: args.greedy_latest?,
|
||||||
|
greedy_auto_updates: args.greedy_auto_updates?)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -194,7 +201,8 @@ module Homebrew
|
|||||||
if formula_or_cask.is_a?(Formula)
|
if formula_or_cask.is_a?(Formula)
|
||||||
formula_or_cask.outdated?(fetch_head: args.fetch_HEAD?)
|
formula_or_cask.outdated?(fetch_head: args.fetch_HEAD?)
|
||||||
else
|
else
|
||||||
formula_or_cask.outdated?(greedy: args.greedy?)
|
formula_or_cask.outdated?(greedy: args.greedy?, greedy_latest: args.greedy_latest?,
|
||||||
|
greedy_auto_updates: args.greedy_auto_updates?)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user