mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ADF-4069] Added updated license list tool (#4302)
* [ADF-4069] Added updated license list tool * [ADF-4069] Added suggestion for licence info in sidebar
This commit is contained in:
committed by
Eugenio Romano
parent
3b1341928f
commit
aae4629e9a
84
tools/doc/licenseList.js
Normal file
84
tools/doc/licenseList.js
Normal file
@@ -0,0 +1,84 @@
|
||||
var path = require('path');
|
||||
var fs = require('fs');
|
||||
|
||||
var checker = require('license-checker');
|
||||
var ejs = require('ejs');
|
||||
var program = require('commander');
|
||||
var spdxCodes = require('spdx-license-list');
|
||||
|
||||
var startPath = path.resolve('.');
|
||||
var templatePath = path.resolve(__dirname, 'templates', 'licensePage.ejs');
|
||||
|
||||
|
||||
const nonStandardLicenses = {
|
||||
"public domain": "PDDL-1.0",
|
||||
"apache": "Apache-2.0"
|
||||
}
|
||||
|
||||
const missingRepos = {
|
||||
"rxjs-compat": "https://github.com/ReactiveX/rxjs/tree/master/compat"
|
||||
}
|
||||
|
||||
program
|
||||
.usage('<versionNumber>')
|
||||
.parse(process.argv);
|
||||
|
||||
console.log(`Checking ${startPath}`);
|
||||
|
||||
checker.init({
|
||||
start: startPath,
|
||||
production: true,
|
||||
failOn: "GPL"
|
||||
}, function(err, packages) {
|
||||
if (err) {
|
||||
console.log(err);
|
||||
} else {
|
||||
//console.log(JSON.stringify(packages));
|
||||
|
||||
for (var packageName in packages) {
|
||||
var pack = packages[packageName];
|
||||
pack['licenseExp'] = licenseWithMDLinks(pack['licenses'].replace(/\*/g, ''));
|
||||
|
||||
if (!pack['repository']) {
|
||||
var lastAtSignPos = packageName.lastIndexOf('@');
|
||||
var mainName = packageName.substring(0, lastAtSignPos);
|
||||
|
||||
if (missingRepos[mainName]) {
|
||||
pack['repository'] = missingRepos[mainName];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ejs.renderFile(templatePath, {packages: packages, projVersion: program.args[0]}, {}, (err, mdText) => {
|
||||
if (err) {
|
||||
console.log(err);
|
||||
} else {
|
||||
//console.log(mdText);
|
||||
var licenseFilePath = path.resolve('.', 'docs', 'license-info', `license-info-${program.args[0]}.md`)
|
||||
fs.writeFileSync(licenseFilePath, mdText);
|
||||
console.log(`Wrote license list at ${licenseFilePath}`);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function licenseWithMDLinks(licenseExp) {
|
||||
var licenseUrl = '';
|
||||
|
||||
if (spdxCodes[licenseExp] && spdxCodes[licenseExp]['url']) {
|
||||
licenseUrl = spdxCodes[licenseExp]['url'];
|
||||
} else {
|
||||
var substituteLicString = nonStandardLicenses[licenseExp.toLowerCase()];
|
||||
|
||||
if (spdxCodes[substituteLicString] && spdxCodes[substituteLicString]['url']) {
|
||||
licenseUrl = spdxCodes[substituteLicString]['url'];
|
||||
}
|
||||
}
|
||||
|
||||
if (licenseUrl) {
|
||||
return `[${licenseExp}](${licenseUrl})`;
|
||||
} else {
|
||||
return licenseExp;
|
||||
}
|
||||
}
|
28
tools/doc/templates/licensePage.ejs
vendored
Normal file
28
tools/doc/templates/licensePage.ejs
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
Title: License info, ADF <%= projVersion %>
|
||||
---
|
||||
|
||||
# License information for ADF <%= projVersion %>
|
||||
|
||||
This page lists all third party libraries that ADF <%= projVersion %> depends on.
|
||||
|
||||
## Libraries
|
||||
|
||||
| Name | Version | License |
|
||||
| -- | -- | -- |
|
||||
<% for (var packageName in packages) {
|
||||
var lastAtSignPos = packageName.lastIndexOf('@');
|
||||
|
||||
var name = packageName.substring(0, lastAtSignPos);
|
||||
var version = packageName.substring(lastAtSignPos + 1);
|
||||
var pack = packages[packageName];
|
||||
var licenses = pack['licenseExp'] || 'N/A';
|
||||
var repo = pack['repository'];
|
||||
var linkedName = name;
|
||||
|
||||
if (repo) {
|
||||
linkedName = `[${name}](${repo})`
|
||||
}
|
||||
-%>
|
||||
| <%= linkedName %> | <%= version %> | <%= licenses %> |
|
||||
<% } %>
|
Reference in New Issue
Block a user