Skip to content

Commit

Permalink
Bump more files to Sorbet typed: strict
Browse files Browse the repository at this point in the history
  • Loading branch information
issyl0 committed Oct 5, 2024
1 parent 7c4f2c1 commit d2c6aa1
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 9 deletions.
2 changes: 1 addition & 1 deletion Library/Homebrew/brew.rb
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@
end
rescue UsageError => e
require "help"
Homebrew::Help.help cmd, remaining_args: args&.remaining, usage_error: e.message
Homebrew::Help.help cmd, remaining_args: args&.remaining || [], usage_error: e.message
rescue SystemExit => e
onoe "Kernel.exit" if args&.debug? && !e.success?
if args&.debug? || ARGV.include?("--debug")
Expand Down
8 changes: 6 additions & 2 deletions Library/Homebrew/cask/migrator.rb
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
# typed: true # rubocop:todo Sorbet/StrictSigil
# typed: strict
# frozen_string_literal: true

require "cask/cask_loader"
require "utils/inreplace"

module Cask
class Migrator
sig { returns(Cask) }
attr_reader :old_cask, :new_cask

sig { params(old_cask: Cask, new_cask: Cask).void }
Expand Down Expand Up @@ -38,7 +39,10 @@ def migrate(dry_run: false)
old_caskroom_path = old_cask.caskroom_path
new_caskroom_path = new_cask.caskroom_path

old_installed_caskfile = old_cask.installed_caskfile.relative_path_from(old_caskroom_path)
old_caskfile = old_cask.installed_caskfile
return if old_caskfile.nil?

old_installed_caskfile = old_caskfile.relative_path_from(old_caskroom_path)
new_installed_caskfile = old_installed_caskfile.dirname/old_installed_caskfile.basename.sub(
old_token,
new_token,
Expand Down
11 changes: 7 additions & 4 deletions Library/Homebrew/formula_cellar_checks.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# typed: true # rubocop:todo Sorbet/StrictSigil
# typed: strict
# frozen_string_literal: true

require "utils/shell"
Expand Down Expand Up @@ -191,6 +191,7 @@ def check_elisp_root(share, name)
EOS
end

sig { params(lib: Pathname, deps: T::Array[Dependency]).returns(T.nilable(String)) }
def check_python_packages(lib, deps)
return unless lib.directory?

Expand Down Expand Up @@ -250,6 +251,7 @@ def check_shim_references(prefix)
EOS
end

sig { params(prefix: Pathname, plist: Pathname).returns(T.nilable(String)) }
def check_plist(prefix, plist)
return unless prefix.directory?

Expand Down Expand Up @@ -412,7 +414,7 @@ def check_binary_arches(formula)

sig { void }
def audit_installed
@new_formula ||= false
@new_formula ||= T.let(false, T.nilable(T::Boolean))

problem_if_output(check_manpages)
problem_if_output(check_infopages)
Expand Down Expand Up @@ -442,8 +444,9 @@ def relative_glob(dir, pattern)
File.directory?(dir) ? Dir.chdir(dir) { Dir[pattern] } : []
end

def cpuid_instruction?(file, objdump = "objdump")
@instruction_column_index ||= {}
sig { params(file: T.any(Pathname, String), objdump: Pathname).returns(T::Boolean) }
def cpuid_instruction?(file, objdump)
@instruction_column_index ||= T.let({}, T.nilable(T::Hash[Pathname, Integer]))
@instruction_column_index[objdump] ||= begin
objdump_version = Utils.popen_read(objdump, "--version")

Expand Down
28 changes: 26 additions & 2 deletions Library/Homebrew/help.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# typed: true # rubocop:todo Sorbet/StrictSigil
# typed: strict
# frozen_string_literal: true

require "cli/parser"
Expand All @@ -7,6 +7,14 @@
module Homebrew
# Helper module for printing help output.
module Help
sig {
params(
cmd: T.nilable(String),
empty_argv: T::Boolean,
usage_error: T.nilable(String),
remaining_args: T::Array[String],
).void
}
def self.help(cmd = nil, empty_argv: false, usage_error: nil, remaining_args: [])
if cmd.nil?
# Handle `brew` (no arguments).
Expand Down Expand Up @@ -39,6 +47,13 @@ def self.help(cmd = nil, empty_argv: false, usage_error: nil, remaining_args: []
exit 0
end

sig {
params(
cmd: String,
path: Pathname,
remaining_args: T::Array[String],
).returns(String)
}
def self.command_help(cmd, path, remaining_args:)
# Only some types of commands can have a parser.
output = if Commands.valid_internal_cmd?(cmd) ||
Expand All @@ -58,25 +73,34 @@ def self.command_help(cmd, path, remaining_args:)
end
private_class_method :command_help

sig {
params(
path: Pathname,
remaining_args: T::Array[String],
).returns(T.nilable(String))
}
def self.parser_help(path, remaining_args:)
# Let OptionParser generate help text for commands which have a parser.
cmd_parser = CLI::Parser.from_cmd_path(path)
return unless cmd_parser
return if remaining_args.empty?

# Try parsing arguments here in order to show formula options in help output.
cmd_parser.parse(remaining_args, ignore_invalid_options: true)
cmd_parser.generate_help_text
end
private_class_method :parser_help

sig { params(path: Pathname).returns(T::Array[String]) }
def self.command_help_lines(path)
path.read
.lines
.grep(/^#:/)
.map { |line| line.slice(2..-1).delete_prefix(" ") }
.filter_map { |line| line.slice(2..-1)&.delete_prefix(" ") }
end
private_class_method :command_help_lines

sig { params(path: Pathname).returns(T.nilable(String)) }
def self.comment_help(path)
# Otherwise read #: lines from the file.
help_lines = command_help_lines(path)
Expand Down

0 comments on commit d2c6aa1

Please sign in to comment.