'use strict'; const fs = require('fs'); const path = require('path'); const legalEagle = require('legal-eagle'); const licenseOverrides = require('../license-overrides'); const CONFIG = require('../config'); module.exports = function() { return new Promise((resolve, reject) => { legalEagle( { path: CONFIG.repositoryRootPath, overrides: licenseOverrides }, (err, packagesLicenses) => { if (err) { reject(err); throw new Error(err); } else { let text = fs.readFileSync( path.join(CONFIG.repositoryRootPath, 'LICENSE.md'), 'utf8' ) + '\n\n' + 'This application bundles the following third-party packages in accordance\n' + 'with the following licenses:\n\n'; for (let packageName of Object.keys(packagesLicenses).sort()) { const packageLicense = packagesLicenses[packageName]; text += '-------------------------------------------------------------------------\n\n'; text += `Package: ${packageName}\n`; text += `License: ${packageLicense.license}\n`; if (packageLicense.source) { text += `License Source: ${packageLicense.source}\n`; } if (packageLicense.sourceText) { text += `Source Text:\n\n${packageLicense.sourceText}`; } text += '\n'; } resolve(text); } } ); }); };