From 3021ba91fdb44b0d44852b80628ad653f1194b3a Mon Sep 17 00:00:00 2001 From: Michael Cho Date: Sun, 17 Mar 2024 11:33:47 -0400 Subject: [PATCH] dev-cmd/create: add types Signed-off-by: Michael Cho --- Library/Homebrew/dev-cmd/create.rb | 8 ++++++-- Library/Homebrew/formula_creator.rb | 3 +++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/dev-cmd/create.rb b/Library/Homebrew/dev-cmd/create.rb index ed2ce73a62..f6c2eea06f 100644 --- a/Library/Homebrew/dev-cmd/create.rb +++ b/Library/Homebrew/dev-cmd/create.rb @@ -70,6 +70,7 @@ module Homebrew end # Create a formula from a tarball URL. + sig { void } def create args = create_args.parse @@ -82,6 +83,7 @@ module Homebrew exec_editor path end + sig { params(args: CLI::Args).returns(Pathname) } def create_cask(args:) url = args.named.first name = if args.set_name.blank? @@ -91,7 +93,7 @@ module Homebrew else args.set_name end - token = Cask::Utils.token_from(name) + token = Cask::Utils.token_from(T.must(name)) cask_tap = Tap.fetch(args.tap || "homebrew/cask") raise TapUnavailableError, cask_tap.name unless cask_tap.installed? @@ -101,7 +103,7 @@ module Homebrew raise Cask::CaskAlreadyCreatedError, token if cask_path.exist? version = if args.set_version - Version.new(args.set_version) + Version.new(T.must(args.set_version)) else Version.detect(url.gsub(token, "").gsub(/x86(_64)?/, "")) end @@ -153,6 +155,7 @@ module Homebrew cask_path end + sig { params(args: CLI::Args).returns(Pathname) } def create_formula(args:) mode = if args.autotools? :autotools @@ -229,6 +232,7 @@ module Homebrew path end + sig { returns(T.nilable(String)) } def __gets gots = $stdin.gets.chomp gots.empty? ? nil : gots diff --git a/Library/Homebrew/formula_creator.rb b/Library/Homebrew/formula_creator.rb index 8157d41b5d..32d80792ae 100644 --- a/Library/Homebrew/formula_creator.rb +++ b/Library/Homebrew/formula_creator.rb @@ -31,6 +31,7 @@ module Homebrew raise TapUnavailableError, @tap.name unless @tap.installed? end + sig { params(url: String).returns(T.nilable(String)) } def self.name_from_url(url) stem = Pathname.new(url).stem # special cases first @@ -47,6 +48,7 @@ module Homebrew end end + sig { void } def parse_url @name = FormulaCreator.name_from_url(@url) if @name.blank? odebug "name_from_url: #{@name}" @@ -65,6 +67,7 @@ module Homebrew end end + sig { returns(Pathname) } def write_formula! raise ArgumentError, "name is blank!" if @name.blank? raise ArgumentError, "tap is blank!" if @tap.blank?