|
@@ -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}`,
|
|
|
});
|