diff options
| author | Xe Iaso <me@xeiaso.net> | 2025-04-06 08:44:52 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-06 12:44:52 +0000 |
| commit | df27a96f1f67b8f30b96bf8fd28e985793dfd45d (patch) | |
| tree | a470b34d27e1e0d1eb16d2e8ffac4373b2cdd764 /yeetfile.js | |
| parent | f1f8fdf7529daccad8fffe97ca6c868f7a9472c7 (diff) | |
| download | anubis-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.js | 45 |
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 |
