Add go licenses to licenses.txt (#21034)

`make go-licenses` will generate `assets/go-licenses.json` which is then included in the webpack build. 

This step depends on both go and node being present, so unfortunately, I could not automate the generation by hooking it up to `tidy` as that target is triggered on CI where we do not have a docker image with both go an node.

It should be ran from time to time, ideally after each go mod update.
This commit is contained in:
silverwind 2022-09-04 00:20:46 +02:00 committed by GitHub
parent 82c6f7bf4a
commit 49efd1fb96
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 827 additions and 7 deletions

View file

@ -0,0 +1,30 @@
#!/usr/bin/env node
import fastGlob from 'fast-glob';
import {fileURLToPath} from 'url';
import {readFileSync, writeFileSync} from 'fs';
import wrapAnsi from 'wrap-ansi';
import {join, dirname} from 'path';
const base = process.argv[2];
const out = process.argv[3];
function exit(err) {
if (err) console.error(err);
process.exit(err ? 1 : 0);
}
async function main() {
const data = fastGlob.sync('**/*', {
cwd: fileURLToPath(new URL(`../${base}`, import.meta.url)),
}).filter((path) => {
return /\/((UN)?LICEN(S|C)E|COPYING|NOTICE)/i.test(path);
}).sort().map((path) => {
return {
name: dirname(path),
body: wrapAnsi(readFileSync(join(base, path), 'utf8') || '', 80)
};
});
writeFileSync(out, JSON.stringify(data, null, 2));
}
main().then(exit).catch(exit);