diff options
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 |
