aboutsummaryrefslogtreecommitdiff
path: root/yeetfile.js
diff options
context:
space:
mode:
authorXe Iaso <me@xeiaso.net>2025-04-06 08:44:52 -0400
committerGitHub <noreply@github.com>2025-04-06 12:44:52 +0000
commitdf27a96f1f67b8f30b96bf8fd28e985793dfd45d (patch)
treea470b34d27e1e0d1eb16d2e8ffac4373b2cdd764 /yeetfile.js
parentf1f8fdf7529daccad8fffe97ca6c868f7a9472c7 (diff)
downloadanubis-df27a96f1f67b8f30b96bf8fd28e985793dfd45d.tar.xz
anubis-df27a96f1f67b8f30b96bf8fd28e985793dfd45d.zip
make a half-baked tarball (#221)
* make a half-baked tarball Closes #217 Signed-off-by: Xe Iaso <me@xeiaso.net> * make two tarballs: one with just the vendor, and one with vendor and npm Signed-off-by: Xe Iaso <me@xeiaso.net> --------- Signed-off-by: Xe Iaso <me@xeiaso.net>
Diffstat (limited to 'yeetfile.js')
-rw-r--r--yeetfile.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/yeetfile.js b/yeetfile.js
index 94388be..871153d 100644
--- a/yeetfile.js
+++ b/yeetfile.js
@@ -24,4 +24,49 @@ $`npm run assets`;
file.install("./run/default.env", `${etc}/default.env`);
},
}));
+});
+
+// NOTE(Xe): Fixes #217. This is a "half baked" tarball that includes the harder
+// parts for deterministic distros already done. Distributions like NixOS, Gentoo
+// and *BSD ports have a difficult time fitting the square peg of their dependency
+// model into the bazarr of round holes that various modern languages use. Needless
+// to say, this makes adoption easier.
+tarball.build({
+ name: "anubis-src-vendor",
+ license: "MIT",
+ // XXX(Xe): This is needed otherwise go will be very sad.
+ platform: yeet.goos,
+ goarch: yeet.goarch,
+
+ build: ({ out }) => {
+ // prepare clean checkout in $out
+ $`git archive --format=tar HEAD | tar xC ${out}`;
+ // vendor Go dependencies
+ $`cd ${out} && go mod vendor`;
+ // write VERSION file
+ $`echo ${git.tag()} > ${out}/VERSION`;
+ },
+
+ mkFilename: ({ name, version }) => `${name}-${version}`,
+});
+
+tarball.build({
+ name: "anubis-src-vendor-npm",
+ license: "MIT",
+ // XXX(Xe): This is needed otherwise go will be very sad.
+ platform: yeet.goos,
+ goarch: yeet.goarch,
+
+ build: ({ out }) => {
+ // prepare clean checkout in $out
+ $`git archive --format=tar HEAD | tar xC ${out}`;
+ // vendor Go dependencies
+ $`cd ${out} && go mod vendor`;
+ // build NPM-bound dependencies
+ $`cd ${out} && npm ci && npm run assets && rm -rf node_modules`
+ // write VERSION file
+ $`echo ${git.tag()} > ${out}/VERSION`;
+ },
+
+ mkFilename: ({ name, version }) => `${name}-${version}`,
}); \ No newline at end of file