backend/scripts/license_exporter.js

58 lines
2.2 KiB
JavaScript

var checker = require('license-checker');
var consola = require('consola');
var fs = require('fs');
var args = process.argv.slice(2);
checker.init({
start: './',
relativeLicensePath: true,
customFormat: {
licenseText: "",
licenseFile: "",
description: "",
version: "",
}
}, function (err, packages) {
if (err) {
consola.error("Couldn't load the licenses.")
} else {
let licenses = new Array();
if (args.includes("--full")) {
Object.keys(packages).forEach(function (key) {
licenses.push({
"name": packages[key].name,
"licenses": packages[key].licenses,
"repository": packages[key].repository || null,
"publisher": packages[key].publisher || null,
"email": packages[key].email || null,
"version": packages[key].version || null,
"description": packages[key].description || null,
"copyright": packages[key].copyright || null,
"text": packages[key].licenseText || null,
"license_path": packages[key].licenseFile || null,
});
});
}
else {
Object.keys(packages).forEach(function (key) {
licenses.push({
"name": packages[key].name,
"licenses": packages[key].licenses,
"repository": packages[key].repository || null,
"publisher": packages[key].publisher || null,
"email": packages[key].email || null,
"version": packages[key].version || null,
"description": packages[key].description || null,
"copyright": packages[key].copyright || null,
});
});
}
try {
fs.writeFileSync("./licenses.json", JSON.stringify(licenses), { encoding: "utf-8" });
consola.success("Exported licenses to ./licenses.json");
} catch (error) {
consola.error("Couldn't export the licenses");
}
}
});