-
Notifications
You must be signed in to change notification settings - Fork 211
Expand file tree
/
Copy pathformula.rb.twig
More file actions
68 lines (56 loc) · 2.43 KB
/
Copy pathformula.rb.twig
File metadata and controls
68 lines (56 loc) · 2.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
class {{ spec.title| caseUcfirst }} < Formula
desc "Command-line tool for interacting with the {{ spec.title| caseUcfirst }} API"
homepage "{{ sdk.url }}"
license "{{ sdk.license }}"
version "{{ sdk.version }}"
def self.binary_arch
Hardware::CPU.arm? ? "arm64" : "x64"
end
def self.binary_os
return "darwin" if OS.mac?
return "linux" if OS.linux?
raise "Homebrew formula is only supported on macOS and Linux"
end
def self.binary_name
"{{ language.params.executableName }}-cli-#{binary_os}-#{binary_arch}"
end
def self.build_target
return "mac-#{binary_arch}" if OS.mac?
return "linux-#{binary_arch}" if OS.linux?
raise "Homebrew formula is only supported on macOS and Linux"
end
# Release automation injects per-target SHA256 values when publishing binaries.
on_macos do
if Hardware::CPU.arm?
url "https://github.com/{{ sdk.gitUserName }}/{{ sdk.gitRepoName | caseDash }}/releases/download/#{version}/{{ language.params.executableName }}-cli-darwin-arm64"
sha256 "{{ language.params.homebrewMacArm64Sha256 }}"
else
url "https://github.com/{{ sdk.gitUserName }}/{{ sdk.gitRepoName | caseDash }}/releases/download/#{version}/{{ language.params.executableName }}-cli-darwin-x64"
sha256 "{{ language.params.homebrewMacX64Sha256 }}"
end
end
on_linux do
if Hardware::CPU.arm?
url "https://github.com/{{ sdk.gitUserName }}/{{ sdk.gitRepoName | caseDash }}/releases/download/#{version}/{{ language.params.executableName }}-cli-linux-arm64"
sha256 "{{ language.params.homebrewLinuxArm64Sha256 }}"
else
url "https://github.com/{{ sdk.gitUserName }}/{{ sdk.gitRepoName | caseDash }}/releases/download/#{version}/{{ language.params.executableName }}-cli-linux-x64"
sha256 "{{ language.params.homebrewLinuxX64Sha256 }}"
end
end
head "https://github.com/{{ sdk.gitUserName }}/{{ sdk.gitRepoName | caseDash }}.git", branch: "master" do
depends_on "bun" => :build
end
def install
if build.head?
system "bun", "install", "--frozen-lockfile"
system "bun", "run", self.class.build_target
bin.install "build/#{self.class.binary_name}" => "{{ language.params.executableName|caseLower }}"
return
end
bin.install self.class.binary_name => "{{ language.params.executableName|caseLower }}"
end
test do
assert_match "Usage:", shell_output("#{bin}/{{ language.params.executableName|caseLower }} --help")
end
end