示例#1
0
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.');
    }
  });
示例#3
0
 badLicensePackages.forEach(pkg => logger.error(`${pkg.id}: ${JSON.stringify(pkg.licenses)}`));
示例#4
0
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);
  });
示例#7
0
'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);