-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathyeetfile.js
90 lines (76 loc) · 2.29 KB
/
yeetfile.js
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
yeet.setenv("KO_DOCKER_REPO", "ghcr.io/xe/x");
yeet.setenv("SOURCE_DATE_EPOCH", ($`git log -1 --format='%ct'`).trim());
yeet.setenv("VERSION", git.tag());
programs = [
"aerial",
"amano",
"aura",
"future-sight",
"httpdebug",
"quickserv",
"relayd",
"reverseproxyd",
"sapientwindex",
"stickers",
"todayinmarch2020",
"uncle-ted",
"within.website",
].join(",");
$`ko build --platform=all --base-import-paths --tags=latest,${git.tag()} ./cmd/{${programs}}`;
["amd64", "arm64"].forEach(goarch => {
[deb, rpm, tarball].forEach(method => {
method.build({
name: "ingressd",
description: "ingress for my homelab",
homepage: "https://within.website",
license: "CC0",
goarch,
documentation: {
"LICENSE": "LICENSE",
},
build: ({ bin, systemd }) => {
$`go build -o ${bin}/ingressd -ldflags '-s -w -extldflags "-static" -X "within.website/x.Version=${git.tag()}"' ./cmd/ingressd`
file.install("./cmd/ingressd/ingressd.service", `${systemd}/ingressd.service`);
},
});
method.build({
name: "license",
description: "software license generator",
homepage: "https://within.website",
license: "CC0",
goarch,
documentation: {
"LICENSE": "LICENSE",
},
build: ({ bin, systemd }) => {
$`go build -o ${bin}/license -ldflags '-s -w -extldflags "-static" -X "within.website/x.Version=${git.tag()}"' ./cmd/license`
},
});
method.build({
name: "quickserv",
description: "Like python3 -m http.server but a single binary",
homepage: "https://within.website",
license: "CC0",
goarch,
documentation: {
"LICENSE": "LICENSE",
},
build: ({ bin }) => {
$`go build -o ${bin}/quickserv -ldflags '-s -w -extldflags "-static" -X "within.website/x.Version=${git.tag()}"' ./cmd/quickserv`
},
});
method.build({
name: "x",
description: "the universal x command",
homepage: "https://within.website",
license: "CC0",
goarch,
documentation: {
"LICENSE": "LICENSE",
},
build: ({ bin, systemd }) => {
$`go build -o ${bin}/x -ldflags '-s -w -extldflags "-static" -X "within.website/x.Version=${git.tag()}"' ./cmd/x`
},
});
});
});