Skip to content

Commit

Permalink
Refactor third party notice
Browse files Browse the repository at this point in the history
  • Loading branch information
e9gille committed Jan 17, 2023
1 parent 37e2033 commit f73bfa9
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 58 deletions.
98 changes: 41 additions & 57 deletions generate-licenses.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,70 +2,54 @@ const generateLicenses = function generateLicenses(file) {
const checker = require('license-checker');
const fs = require('fs');
const path = require('path');
checker.init(
{
start: ".",
production: true,
excludePrivatePackages: true,
},
function (err, json) {
if (err) {
console.log(err); //Handle error
} else {
copyLicenseToText(json); //The sorted json data
}
function isMarkDown(filepath) {
const filename = path.basename(filepath).toUpperCase();
return filename === 'README.MD' || filename === 'README.MARKDOWN';
}
function copyLicense(item) {
if (item.licenseFile && !isMarkDown(item.licenseFile)) {
const licenseFile = fs.readFileSync(`${item.licenseFile}`, 'utf8');
fs.appendFileSync(file, `\n\n${item.module} (${item.repository})\n`);
fs.appendFileSync(file, '=========================================\n');
fs.appendFileSync(file, licenseFile);
}
);
}
function printLicenseDetails(licenses) {
fs.appendFileSync(file, 'THIRD-PARTY SOFTWARE NOTICES AND INFORMATION\n\n');
fs.appendFileSync(file, 'This project incorporates components from the projects listed below.\n');
Object.keys(licenses).forEach((key) => {
licenses[key].forEach(copyLicense);
});
}
function copyLicenseToText(json) {
const licenses = Object.keys(json).map((key) => {
let obj = json[key];
const obj = json[key];
obj.module = key;
return obj;
})
.filter(item => !isMarkDown(item.licenseFile))
.reduce(
(r, v) => ((r[v.licenses] || (r[v.licenses] = [])).push(v), r),
{}
);
printLicenseSummary(licenses);
.filter((item) => !isMarkDown(item.licenseFile))
.reduce(
(r, v) => {
(r[v.licenses] || (r[v.licenses] = [])).push(v);
return r;
},
{},
);
printLicenseDetails(licenses);
}
function printLicenseSummary(licenses) {
Object.keys(licenses).forEach((key) => {
const items = licenses[key];
fs.appendFileSync(file, "\n\n-------------------\n");
fs.appendFileSync(file, `${key} - License Summary\n`);
fs.appendFileSync(file, "--------------------\n\n");
items.forEach(item => {
fs.appendFileSync(file, `${item.module}\n`);
});
});
}
function printLicenseDetails(licenses) {
Object.keys(licenses).forEach(function (key) {
const items = licenses[key];
fs.appendFileSync(file, "\n\n----------------------\n");
fs.appendFileSync(file, `${key} - License Details \n`);
fs.appendFileSync(file, "------------------------\n\n");
items.forEach(copyLicense);
});
}
function copyLicense(item) {
try {
if (item.licenseFile && !isMarkDown(item.licenseFile)) {
const licenseFile = fs.readFileSync(`${item.licenseFile}`, "utf8");
fs.appendFileSync(file, "\n\n----------------------\n");
fs.appendFileSync(file, `${item.module} - ${item.licenses}\n`);
fs.appendFileSync(file, "-----------------------\n\n");
fs.appendFileSync(file, licenseFile);
checker.init(
{
start: '.',
production: true,
excludePrivatePackages: true,
},
(err, json) => {
if (err) {
throw err;
} else {
copyLicenseToText(json); // The sorted json data
}
} catch (err) {
console.error(err);
}
}
function isMarkDown(filepath) {
const filename = path.basename(filepath).toUpperCase();
return filename == "README.MD" || filename == "README.MARKDOWN";
}
},
);
};
module.exports.generateLicenses = generateLicenses;
module.exports.generateLicenses = generateLicenses;
2 changes: 1 addition & 1 deletion mk
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ const pkg = (x, y, f) => {
const d = `_/${pj.name}/${pj.productName}-${x}-${y}`;
rm(`${d}/version`);
fs.existsSync(`${d}/LICENSE`) && mv(`${d}/LICENSE`, `${d}/LICENSE.electron`);
generateLicenses(`${d}/LICENSES.node.txt`);
generateLicenses(`${d}/ThirdPartyNotices.txt`);
f();
}, e => f(e));
};
Expand Down

0 comments on commit f73bfa9

Please sign in to comment.