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:
IgnoredPatterns:
- '\AHEAD\?\Z'
- '\A(fetch_)?HEAD\?\Z'
# Allow dashes in filenames.
Naming/FileName:

View File

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

View File

@ -26,6 +26,7 @@ module Cask
}],
].freeze
sig { returns(Homebrew::CLI::Parser) }
def self.parser
super do
switch "--force",
@ -56,6 +57,20 @@ module Cask
)
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(
*casks,
args:,

View File

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

View File

@ -3,27 +3,62 @@
module Homebrew
module CLI
class Args < OpenStruct
sig { returns(T.nilable(T::Boolean)) }
def devel?; end
sig { returns(T.nilable(T::Boolean)) }
def HEAD?; end
sig { returns(T.nilable(T::Boolean)) }
def include_test?; end
sig { returns(T.nilable(T::Boolean)) }
def build_bottle?; end
sig { returns(T.nilable(T::Boolean)) }
def build_universal?; end
sig { returns(T.nilable(T::Boolean)) }
def build_from_source?; end
def named_args; end
sig { returns(T.nilable(T::Boolean)) }
def force_bottle?; end
sig { returns(T.nilable(T::Boolean)) }
def debug?; end
sig { returns(T.nilable(T::Boolean)) }
def quiet?; end
sig { returns(T.nilable(T::Boolean)) }
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

View File

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

View File

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

View File

@ -62,7 +62,7 @@ describe Homebrew::CLI::Parser do
it "passes through invalid options" do
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.named_args).to be_empty
expect(args.named).to be_empty
end
end