checker.init({ start: path.join(__dirname, '..') }, (err, json) => { if (err) { logger.fatal(`Something happened:\n${err.message}`); } else { logger.info(`Testing ${Object.keys(json).length} packages.\n`); // Packages with bad licenses are those that neither pass SPDX nor are ignored. const badLicensePackages = Object.keys(json) .map(key => { return { id: key, licenses: [] .concat(json[key].licenses) .map(x => x.replace(/\*$/, '')) // `*` is used when the license is guessed. .map(x => x in licenseReplacements ? licenseReplacements[x] : x), }; }) .filter(pkg => !passesSpdx(pkg.licenses, licensesWhitelist)) .filter(pkg => !ignoredPackages.find(ignored => ignored === pkg.id)); // Report packages with bad licenses if (badLicensePackages.length > 0) { logger.error('Invalid package licences found:'); badLicensePackages.forEach(pkg => logger.error(`${pkg.id}: ${JSON.stringify(pkg.licenses)}`)); logger.fatal(`\n${badLicensePackages.length} total packages with invalid licenses.`); } else { logger.info('All package licenses are valid.'); } } });
(error, stdout, stderr) => { if (error) { logger.fatal(stderr); return; } const output = stdout.trim(); if (output.length == 0) { logger.warn('There are zero new commits between this HEAD and master'); return; } const commitsByLine = output.split(/\n/); logger.info(`Examining ${commitsByLine.length} commit(s) between HEAD and master`); const someCommitsInvalid = !commitsByLine.every(validateCommitMessage); if (someCommitsInvalid) { logger.error('Please fix the failing commit messages before continuing...'); logger.fatal( 'Commit message guidelines: https://github.com/angular/angular-cli/blob/master/CONTRIBUTING.md#commit'); } else { logger.info('All commit messages are valid.'); } });
badLicensePackages.forEach(pkg => logger.error(`${pkg.id}: ${JSON.stringify(pkg.licenses)}`));
require('../lib/bootstrap-local'); const path = require('path'); const chalk = require('chalk'); const spdxSatisfies = require('spdx-satisfies'); const Logger = require('@ngtools/logger').Logger; const filter = require('rxjs/operators').filter; // Configure logger const logger = new Logger('test-licenses'); logger.subscribe((entry) => { let color = chalk.white; let output = process.stdout; switch (entry.level) { case 'info': color = chalk.white; break; case 'warn': color = chalk.yellow; break; case 'error': color = chalk.red; output = process.stderr; break; case 'fatal': color = (x) => chalk.bold(chalk.red(x)); output = process.stderr; break; } output.write(color(entry.message) + '\n'); }); logger .pipe(filter((entry) => entry.level == 'fatal')) .subscribe(() => { process.stderr.write('A fatal error happened. See details above.'); process.exit(1); });
badLicensePackages.forEach(pkg => logger.error(`${pkg.id} (${pkg.path}): ${pkg.license}`));
require('../lib/bootstrap-local'); const path = require('path'); const glob = require('glob'); const chalk = require('chalk'); const spdxSatisfies = require('spdx-satisfies'); const Logger = require('@ngtools/logger').Logger; require('rxjs/add/operator/filter'); // Configure logger const logger = new Logger('test-licenses'); logger.subscribe((entry) => { let color = chalk.white; let output = process.stdout; switch (entry.level) { case 'info': color = chalk.white; break; case 'warn': color = chalk.yellow; break; case 'error': color = chalk.red; output = process.stderr; break; case 'fatal': color = (x) => chalk.bold(chalk.red(x)); output = process.stderr; break; } output.write(color(entry.message) + '\n'); }); logger .filter((entry) => entry.level == 'fatal') .subscribe(() => { process.stderr.write('A fatal error happened. See details above.'); process.exit(1); });
'use strict'; require('../lib/bootstrap-local'); const validateCommitMessage = require('./validate-commit-message'); const execSync = require('child_process').execSync; const chalk = require('chalk'); const Logger = require('@ngtools/logger').Logger; require('rxjs/add/operator/filter'); // Configure logger const logger = new Logger('test-commit-messages'); logger.subscribe((entry) => { let color = chalk.white; let output = process.stdout; switch (entry.level) { case 'info': color = chalk.white; break; case 'warn': color = chalk.yellow; break; case 'error': color = chalk.red; output = process.stderr; break; case 'fatal': color = (x) => chalk.bold(chalk.red(x)); output = process.stderr; break; } output.write(color(entry.message) + '\n'); }); logger .filter((entry) => entry.level === 'fatal') .subscribe(() => { process.stderr.write('A fatal error happened. See details above.'); process.exit(1);