From 62c7f26540905b0f73c09b8047da7718a67cfaf8 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 30 Dec 2020 21:05:16 +0100 Subject: [PATCH] Added --full option for the license exporter to export the license path and text as well ref #59 --- package.json | 5 ++-- scripts/license_exporter.js | 52 +++++++++++++++++++++++++++---------- 2 files changed, 41 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 2d9f3c4..bea4919 100644 --- a/package.json +++ b/package.json @@ -75,8 +75,9 @@ "test:watch": "jest --watchAll", "test:ci": "start-server-and-test dev http://localhost:4010/api/docs/openapi.json test", "seed": "ts-node ./node_modules/typeorm/cli.js schema:sync && ts-node ./node_modules/typeorm-seeding/dist/cli.js seed", - "openapi:export": "ts-node scripts/openapi_export.ts", - "licenses:export": "node scripts/license_exporter.js" + "openapi:export": "node scripts/openapi_export.js", + "licenses:export": "node scripts/license_exporter.js", + "licenses:full": "node scripts/license_exporter.js --full" }, "nodemonConfig": { "ignore": [ diff --git a/scripts/license_exporter.js b/scripts/license_exporter.js index 339d4c9..1688f35 100644 --- a/scripts/license_exporter.js +++ b/scripts/license_exporter.js @@ -2,28 +2,52 @@ var checker = require('license-checker'); var consola = require('consola'); var fs = require('fs'); +var args = process.argv.slice(2); checker.init({ start: './', -}, function(err, packages) { + relativeLicensePath: true, + customFormat: { + licenseText: "", + licenseFile: "", + description: "", + version: "", + } +}, function (err, packages) { if (err) { consola.error("Couldn't load the licenses.") } else { let licenses = new Array(); - Object.keys(packages).forEach(function(key) { - licenses.push({ - "name": packages[key].name, - "licenses": packages[key].licenses || null, - "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, - "url": packages[key].url || null, + 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");