dev-cmd/create: add types

Signed-off-by: Michael Cho <michael@michaelcho.dev>
This commit is contained in:
Michael Cho 2024-03-17 11:33:47 -04:00
parent bb753a6c48
commit 3021ba91fd
No known key found for this signature in database
GPG Key ID: 55E85E28A7CD1E85
2 changed files with 9 additions and 2 deletions

View File

@ -70,6 +70,7 @@ module Homebrew
end end
# Create a formula from a tarball URL. # Create a formula from a tarball URL.
sig { void }
def create def create
args = create_args.parse args = create_args.parse
@ -82,6 +83,7 @@ module Homebrew
exec_editor path exec_editor path
end end
sig { params(args: CLI::Args).returns(Pathname) }
def create_cask(args:) def create_cask(args:)
url = args.named.first url = args.named.first
name = if args.set_name.blank? name = if args.set_name.blank?
@ -91,7 +93,7 @@ module Homebrew
else else
args.set_name args.set_name
end end
token = Cask::Utils.token_from(name) token = Cask::Utils.token_from(T.must(name))
cask_tap = Tap.fetch(args.tap || "homebrew/cask") cask_tap = Tap.fetch(args.tap || "homebrew/cask")
raise TapUnavailableError, cask_tap.name unless cask_tap.installed? raise TapUnavailableError, cask_tap.name unless cask_tap.installed?
@ -101,7 +103,7 @@ module Homebrew
raise Cask::CaskAlreadyCreatedError, token if cask_path.exist? raise Cask::CaskAlreadyCreatedError, token if cask_path.exist?
version = if args.set_version version = if args.set_version
Version.new(args.set_version) Version.new(T.must(args.set_version))
else else
Version.detect(url.gsub(token, "").gsub(/x86(_64)?/, "")) Version.detect(url.gsub(token, "").gsub(/x86(_64)?/, ""))
end end
@ -153,6 +155,7 @@ module Homebrew
cask_path cask_path
end end
sig { params(args: CLI::Args).returns(Pathname) }
def create_formula(args:) def create_formula(args:)
mode = if args.autotools? mode = if args.autotools?
:autotools :autotools
@ -229,6 +232,7 @@ module Homebrew
path path
end end
sig { returns(T.nilable(String)) }
def __gets def __gets
gots = $stdin.gets.chomp gots = $stdin.gets.chomp
gots.empty? ? nil : gots gots.empty? ? nil : gots

View File

@ -31,6 +31,7 @@ module Homebrew
raise TapUnavailableError, @tap.name unless @tap.installed? raise TapUnavailableError, @tap.name unless @tap.installed?
end end
sig { params(url: String).returns(T.nilable(String)) }
def self.name_from_url(url) def self.name_from_url(url)
stem = Pathname.new(url).stem stem = Pathname.new(url).stem
# special cases first # special cases first
@ -47,6 +48,7 @@ module Homebrew
end end
end end
sig { void }
def parse_url def parse_url
@name = FormulaCreator.name_from_url(@url) if @name.blank? @name = FormulaCreator.name_from_url(@url) if @name.blank?
odebug "name_from_url: #{@name}" odebug "name_from_url: #{@name}"
@ -65,6 +67,7 @@ module Homebrew
end end
end end
sig { returns(Pathname) }
def write_formula! def write_formula!
raise ArgumentError, "name is blank!" if @name.blank? raise ArgumentError, "name is blank!" if @name.blank?
raise ArgumentError, "tap is blank!" if @tap.blank? raise ArgumentError, "tap is blank!" if @tap.blank?