Skip to content

Commit c39d6b6

Browse files
committed
use logger
1 parent 1c34b55 commit c39d6b6

File tree

1 file changed

+33
-9
lines changed

1 file changed

+33
-9
lines changed

scripts/test-licenses.js

+33-9
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,34 @@ require('../lib/bootstrap-local');
22

33
const path = require('path');
44
const glob = require('glob');
5+
const chalk = require('chalk');
56
const spdxSatisfies = require('spdx-satisfies');
6-
// TODO use logger.Logger
7-
const logger = require('@ngtools/logger');
7+
const Logger = require('@ngtools/logger').Logger;
8+
require('rxjs/add/operator/filter');
89

10+
// Configure logger
11+
const logger = new Logger('test-licenses');
12+
13+
logger
14+
.subscribe((entry) => {
15+
let color = chalk.white;
16+
let output = process.stdout;
17+
switch (entry.level) {
18+
case 'info': color = chalk.white; break;
19+
case 'warn': color = chalk.yellow; break;
20+
case 'error': color = chalk.red; output = process.stderr; break;
21+
case 'fatal': color = (x) => chalk.bold(chalk.red(x)); output = process.stderr; break;
22+
}
23+
24+
output.write(color(entry.message) + '\n');
25+
});
26+
27+
logger
28+
.filter((entry) => entry.level == 'fatal')
29+
.subscribe(() => {
30+
process.stderr.write('A fatal error happened. See details above.');
31+
process.exit(1);
32+
});
933

1034
// SPDX defined licenses, see https://spdx.org/licenses/.
1135
// TODO(hansl): confirm this list
@@ -28,7 +52,7 @@ const acceptedSpdxLicenses = [
2852
const licenseReplacements = [
2953
{ name: 'Apache License, Version 2.0', replacement: 'Apache-2.0' },
3054
{ name: 'AFLv2.1', replacement: 'AFL-2.1' },
31-
// I guess they are kinda the same?
55+
// I guess these are kinda the same?
3256
{ name: 'BSD', replacement: 'BSD-2-Clause' },
3357
{ name: 'BSD-like', replacement: 'BSD-2-Clause' },
3458
{ name: 'MIT/X11', replacement: 'MIT' },
@@ -62,7 +86,7 @@ const ignoredPackages = [
6286

6387
const root = path.resolve(__dirname, '../');
6488

65-
// Find all folder directly under a `node_modules` that have a package.json.
89+
// Find all folders directly under a `node_modules` that have a package.json.
6690
const allPackages = glob.sync(path.join(root, '**/node_modules/*/package.json'), { nodir: true })
6791
.map(packageJsonPath => {
6892
const packageJson = require(packageJsonPath);
@@ -93,7 +117,7 @@ const allPackages = glob.sync(path.join(root, '**/node_modules/*/package.json'),
93117
return pkg;
94118
})
95119

96-
// TODO: show total number of packages
120+
logger.info(`Testing ${allPackages.length} packages.\n`)
97121

98122
// Packages with bad licenses are those that neither pass SPDX nor are ignored.
99123
const badLicensePackages = allPackages
@@ -102,11 +126,11 @@ const badLicensePackages = allPackages
102126

103127
// Report packages with bad licenses
104128
if (badLicensePackages.length > 0) {
105-
console.log('Invalid package licences found:\n');
106-
badLicensePackages.forEach(pkg => console.log(`${pkg.id} (${pkg.path}): ${pkg.license}`));
107-
process.exit(1);
129+
logger.error('Invalid package licences found:');
130+
badLicensePackages.forEach(pkg => logger.error(`${pkg.id} (${pkg.path}): ${pkg.license}`));
131+
logger.fatal(`\n${badLicensePackages.length} total packages with invalid licenses.`);
108132
} else {
109-
console.log('All package licenses are valid.');
133+
logger.info('All package licenses are valid.');
110134
}
111135

112136
// Check if a license is accepted by an array of accepted licenses

0 commit comments

Comments
 (0)