create: improve cask token & version generation
This commit is contained in:
parent
586d25a522
commit
bb26935344
@ -79,6 +79,18 @@ module Cask
|
||||
path.exist? || path.symlink?
|
||||
end
|
||||
|
||||
sig { params(name: String).returns(String) }
|
||||
def self.token_from(name)
|
||||
name.downcase
|
||||
.gsub("+", "-plus-")
|
||||
.gsub("@", "-at-")
|
||||
.gsub(/[ _·•]/, "-")
|
||||
.gsub(/[^\w-]/, "")
|
||||
.gsub(/--+/, "-")
|
||||
.delete_prefix("-")
|
||||
.delete_suffix("-")
|
||||
end
|
||||
|
||||
sig { returns(String) }
|
||||
def self.error_message_with_suggestions
|
||||
<<~EOS
|
||||
|
@ -85,11 +85,11 @@ module Homebrew
|
||||
end
|
||||
|
||||
def create_cask(args:)
|
||||
url = args.named.first
|
||||
raise UsageError, "The `--set-name` flag is required for creating casks." if args.set_name.blank?
|
||||
|
||||
if (token = args.set_name).nil?
|
||||
raise UsageError, "The `--set-name` flag is required for creating casks."
|
||||
end
|
||||
url = args.named.first
|
||||
name = args.set_name
|
||||
token = Cask::Utils.token_from(args.set_name)
|
||||
|
||||
cask_tap = Tap.fetch(args.tap || "homebrew/cask")
|
||||
raise TapUnavailableError, args.tap unless cask_tap.installed?
|
||||
@ -101,7 +101,7 @@ module Homebrew
|
||||
version = if args.set_version
|
||||
Version.create(args.set_version)
|
||||
else
|
||||
Version.detect(url.gsub(token, ""))
|
||||
Version.detect(url.gsub(token, "").gsub(/x86(_64)?/, ""))
|
||||
end
|
||||
|
||||
interpolated_url, sha256 = if version.null?
|
||||
@ -125,7 +125,7 @@ module Homebrew
|
||||
sha256 "#{sha256}"
|
||||
|
||||
url "#{interpolated_url}"
|
||||
name ""
|
||||
name "#{name}"
|
||||
desc ""
|
||||
homepage ""
|
||||
|
||||
|
@ -15,4 +15,9 @@ describe "brew create" do
|
||||
expect(formula_file).to exist
|
||||
expect(formula_file.read).to match(%Q(sha256 "#{TESTBALL_SHA256}"))
|
||||
end
|
||||
|
||||
it "generates valid cask tokens" do
|
||||
t = Cask::Utils.token_from("A Foo@Bar_Baz++!")
|
||||
expect(t).to eq("a-foo-at-bar-baz-plus-plus")
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user