in tools/legal/main.js [12:40]
async function main(argv) {
if (argv._.length < 1) {
throw new Error('Usage: node legal Cargo.lock');
}
console.error('Checking OSS dependencies for MIT license...');
const raw = await fs.readFile(argv._[0], 'utf8');
const cargolock = toml.parse(raw);
const tasks = cargolock.package
.filter(pkg => pkg.name !== 'inno_updater')
.map(pkg => async () => {
const info = await getCrateInfo(pkg.name);
const versionInfo = info.versions.filter(v => v.num === pkg.version)[0];
const isMIT = /MIT/.test(versionInfo.license);
console.error(`${versionInfo.crate} ${versionInfo.num} ${versionInfo.license} ${isMIT ? '✔︎' : '✖︎'}`);
return isMIT;
});
const areMIT = await pall(tasks, { concurrency: 10 });
const allAreMIT = areMIT.reduce((r, v) => r && v, true);
if (!allAreMIT) {
throw new Error('Some dependencies are not MIT!');
}
return;
}