52 lines
1.1 KiB
JavaScript
Executable File
52 lines
1.1 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
/*eslint no-console: 0*/
|
|
|
|
'use strict';
|
|
|
|
const cli = require('../lib/support/cli'),
|
|
sitespeed = require('../lib/sitespeed'),
|
|
Promise = require('bluebird');
|
|
|
|
if (process.env.NODE_ENV !== 'production') {
|
|
require('longjohn');
|
|
}
|
|
|
|
Promise.config({
|
|
warnings: true,
|
|
longStackTraces: true
|
|
});
|
|
|
|
process.exitCode = 1;
|
|
|
|
let parsed = cli.parseCommandLine();
|
|
let budgetFailing = false;
|
|
// hack for getting in the unchanged cli options
|
|
parsed.options.explicitOptions = parsed.explicitOptions;
|
|
parsed.options.urls = parsed.urls;
|
|
parsed.options.urlsMetaData = parsed.urlsMetaData;
|
|
|
|
sitespeed
|
|
.run(parsed.options)
|
|
.then(result => {
|
|
if (result.errors.length > 0) {
|
|
throw new Error('Errors while running:\n' + result.errors.join('\n'));
|
|
}
|
|
if (
|
|
parsed.options.budget &&
|
|
Object.keys(result.budgetResult.failing).length > 0
|
|
) {
|
|
process.exitCode = 1;
|
|
budgetFailing = true;
|
|
}
|
|
})
|
|
.then(() => {
|
|
if (!budgetFailing) {
|
|
process.exitCode = 0;
|
|
}
|
|
})
|
|
.catch(() => {
|
|
process.exitCode = 1;
|
|
})
|
|
.finally(() => process.exit());
|