42 lines
1.3 KiB
JavaScript
42 lines
1.3 KiB
JavaScript
#!/usr/bin/env node
|
|
require('shelljs/global');
|
|
require('colors');
|
|
|
|
var async = require('async'),
|
|
ESLintCLIEngine = require('eslint').CLIEngine,
|
|
|
|
LINT_SOURCE_DIRS = [
|
|
'./lib',
|
|
'./bin',
|
|
'./test',
|
|
'./examples/*.js',
|
|
'./npm/*.js',
|
|
'./index.js'
|
|
];
|
|
|
|
module.exports = function (exit) {
|
|
// banner line
|
|
console.info('\nLinting files using eslint...'.yellow.bold);
|
|
|
|
async.waterfall([
|
|
// execute the CLI engine
|
|
function (next) {
|
|
next(null, (new ESLintCLIEngine()).executeOnFiles(LINT_SOURCE_DIRS));
|
|
},
|
|
|
|
// output results
|
|
function (report, next) {
|
|
var errorReport = ESLintCLIEngine.getErrorResults(report.results);
|
|
// log the result to CLI
|
|
console.info(ESLintCLIEngine.getFormatter()(report.results));
|
|
// log the success of the parser if it has no errors
|
|
(errorReport && !errorReport.length) && console.info('eslint ok!'.green);
|
|
// ensure that the exit code is non zero in case there was an error
|
|
next(Number(errorReport && errorReport.length) || 0);
|
|
}
|
|
], exit);
|
|
};
|
|
|
|
// ensure we run this script exports if this is a direct stdin.tty run
|
|
!module.parent && module.exports(exit);
|