Add type annotations related to upgrade.

This commit is contained in:
Markus Reiter 2020-11-16 01:52:57 +01:00
parent 7893d316ab
commit 3ee66d8c0d
8 changed files with 65 additions and 8 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:,

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

@ -92,6 +92,7 @@ module Homebrew
end end
end end
sig { void }
def upgrade def upgrade
args = upgrade_args.parse args = upgrade_args.parse
@ -109,6 +110,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?
@ -176,6 +178,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