Merge pull request #9146 from reitermarkus/upgrade

Mention `--greedy` when no casks were upgraded.
This commit is contained in:
Markus Reiter 2020-11-16 22:03:10 +01:00 committed by GitHub
commit 9f458142b7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 68 additions and 9 deletions

View File

@ -69,7 +69,7 @@ Naming/HeredocDelimiterNaming:
Naming/MethodName: Naming/MethodName:
IgnoredPatterns: IgnoredPatterns:
- '\AHEAD\?\Z' - '\A(fetch_)?HEAD\?\Z'
# Allow dashes in filenames. # Allow dashes in filenames.
Naming/FileName: Naming/FileName:

View File

@ -8,6 +8,8 @@ module Cask
# #
# @api private # @api private
module Caskroom module Caskroom
extend T::Sig
module_function module_function
def path def path
@ -30,6 +32,7 @@ module Cask
SystemCommand.run("/usr/bin/chgrp", args: ["admin", path], sudo: sudo) SystemCommand.run("/usr/bin/chgrp", args: ["admin", path], sudo: sudo)
end end
sig { params(config: Config).returns(T::Array[Cask]) }
def casks(config: nil) def casks(config: nil)
return [] unless path.exist? return [] unless path.exist?

View File

@ -26,6 +26,7 @@ module Cask
}], }],
].freeze ].freeze
sig { returns(Homebrew::CLI::Parser) }
def self.parser def self.parser
super do super do
switch "--force", switch "--force",
@ -56,6 +57,20 @@ module Cask
) )
end end
sig do
params(
casks: Cask,
args: Homebrew::CLI::Args,
force: T.nilable(T::Boolean),
greedy: T.nilable(T::Boolean),
dry_run: T.nilable(T::Boolean),
skip_cask_deps: T.nilable(T::Boolean),
verbose: T.nilable(T::Boolean),
binaries: T.nilable(T::Boolean),
quarantine: T.nilable(T::Boolean),
require_sha: T.nilable(T::Boolean),
).void
end
def self.upgrade_casks( def self.upgrade_casks(
*casks, *casks,
args:, args:,
@ -85,7 +100,9 @@ module Cask
return if outdated_casks.empty? return if outdated_casks.empty?
ohai "Casks with `auto_updates` or `version :latest` will not be upgraded" 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."
end
verb = dry_run ? "Would upgrade" : "Upgrading" verb = dry_run ? "Would upgrade" : "Upgrading"
oh1 "#{verb} #{outdated_casks.count} #{"outdated package".pluralize(outdated_casks.count)}:" oh1 "#{verb} #{outdated_casks.count} #{"outdated package".pluralize(outdated_casks.count)}:"

View File

@ -24,7 +24,7 @@ module Homebrew
# Can set these because they will be overwritten by freeze_named_args! # Can set these because they will be overwritten by freeze_named_args!
# (whereas other values below will only be overwritten if passed). # (whereas other values below will only be overwritten if passed).
self[:named_args] = NamedArgs.new(parent: self) self[:named] = NamedArgs.new(parent: self)
self[:remaining] = [] self[:remaining] = []
end end
@ -33,7 +33,7 @@ module Homebrew
end end
def freeze_named_args!(named_args) def freeze_named_args!(named_args)
self[:named_args] = NamedArgs.new( self[:named] = NamedArgs.new(
*named_args.freeze, *named_args.freeze,
override_spec: spec(nil), override_spec: spec(nil),
force_bottle: force_bottle?, force_bottle: force_bottle?,
@ -53,8 +53,9 @@ module Homebrew
@flags_only = cli_args.select { |a| a.start_with?("--") }.freeze @flags_only = cli_args.select { |a| a.start_with?("--") }.freeze
end end
sig { returns(NamedArgs) }
def named def named
named_args self[:named]
end end
def no_named? def no_named?

View File

@ -3,27 +3,62 @@
module Homebrew module Homebrew
module CLI module CLI
class Args < OpenStruct class Args < OpenStruct
sig { returns(T.nilable(T::Boolean)) }
def devel?; end def devel?; end
sig { returns(T.nilable(T::Boolean)) }
def HEAD?; end def HEAD?; end
sig { returns(T.nilable(T::Boolean)) }
def include_test?; end def include_test?; end
sig { returns(T.nilable(T::Boolean)) }
def build_bottle?; end def build_bottle?; end
sig { returns(T.nilable(T::Boolean)) }
def build_universal?; end def build_universal?; end
sig { returns(T.nilable(T::Boolean)) }
def build_from_source?; end def build_from_source?; end
def named_args; end sig { returns(T.nilable(T::Boolean)) }
def force_bottle?; end def force_bottle?; end
sig { returns(T.nilable(T::Boolean)) }
def debug?; end def debug?; end
sig { returns(T.nilable(T::Boolean)) }
def quiet?; end def quiet?; end
sig { returns(T.nilable(T::Boolean)) }
def verbose?; end def verbose?; end
sig { returns(T.nilable(T::Boolean)) }
def fetch_HEAD?; end
sig { returns(T.nilable(T::Boolean)) }
def cask?; end
sig { returns(T.nilable(T::Boolean)) }
def dry_run?; end
sig { returns(T.nilable(T::Boolean)) }
def skip_cask_deps?; end
sig { returns(T.nilable(T::Boolean)) }
def greedy?; end
sig { returns(T.nilable(T::Boolean)) }
def force?; end
sig { returns(T.nilable(T::Boolean)) }
def ignore_pinned?; end
sig { returns(T.nilable(T::Boolean)) }
def display_times?; end
sig { returns(T.nilable(T::Boolean)) }
def formula?; end
end end
end end
end end

View File

@ -13,7 +13,7 @@ module Homebrew
# Helper class for loading formulae/casks from named arguments. # Helper class for loading formulae/casks from named arguments.
# #
# @api private # @api private
class NamedArgs < SimpleDelegator class NamedArgs < Array
def initialize(*args, parent: Args.new, override_spec: nil, force_bottle: false, flags: []) def initialize(*args, parent: Args.new, override_spec: nil, force_bottle: false, flags: [])
@args = args @args = args
@override_spec = override_spec @override_spec = override_spec

View File

@ -91,6 +91,7 @@ module Homebrew
end end
end end
sig { void }
def upgrade def upgrade
args = upgrade_args.parse args = upgrade_args.parse
@ -108,6 +109,7 @@ module Homebrew
upgrade_outdated_casks(casks, args: args) unless upgrade_formulae upgrade_outdated_casks(casks, args: args) unless upgrade_formulae
end end
sig { params(formulae: T::Array[Formula], args: CLI::Args).void }
def upgrade_outdated_formulae(formulae, args:) def upgrade_outdated_formulae(formulae, args:)
return if args.cask? return if args.cask?
@ -175,6 +177,7 @@ module Homebrew
Homebrew.messages.display_messages(display_times: args.display_times?) Homebrew.messages.display_messages(display_times: args.display_times?)
end end
sig { params(casks: T::Array[Cask::Cask], args: CLI::Args).void }
def upgrade_outdated_casks(casks, args:) def upgrade_outdated_casks(casks, args:)
return if args.formula? return if args.formula?

View File

@ -62,7 +62,7 @@ describe Homebrew::CLI::Parser do
it "passes through invalid options" do it "passes through invalid options" do
args = parser.parse(["-v", "named-arg", "--not-a-valid-option"], ignore_invalid_options: true) args = parser.parse(["-v", "named-arg", "--not-a-valid-option"], ignore_invalid_options: true)
expect(args.remaining).to eq ["named-arg", "--not-a-valid-option"] expect(args.remaining).to eq ["named-arg", "--not-a-valid-option"]
expect(args.named_args).to be_empty expect(args.named).to be_empty
end end
end end