50 lines
897 B
JavaScript
50 lines
897 B
JavaScript
|
'use strict';
|
||
|
|
||
|
/**
|
||
|
* Dependencies.
|
||
|
*/
|
||
|
|
||
|
const fs = require('fs');
|
||
|
|
||
|
/**
|
||
|
* Export `getOptions`.
|
||
|
*/
|
||
|
|
||
|
module.exports = getOptions;
|
||
|
|
||
|
/**
|
||
|
* Get options.
|
||
|
*/
|
||
|
|
||
|
function getOptions() {
|
||
|
if (
|
||
|
process.argv.length === 3 &&
|
||
|
(process.argv[2] === '-h' || process.argv[2] === '--help')
|
||
|
) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
const optsPath =
|
||
|
process.argv.indexOf('--opts') === -1
|
||
|
? 'test/mocha.opts'
|
||
|
: process.argv[process.argv.indexOf('--opts') + 1];
|
||
|
|
||
|
try {
|
||
|
const opts = fs
|
||
|
.readFileSync(optsPath, 'utf8')
|
||
|
.replace(/^#.*$/gm, '')
|
||
|
.replace(/\\\s/g, '%20')
|
||
|
.split(/\s/)
|
||
|
.filter(Boolean)
|
||
|
.map(value => value.replace(/%20/g, ' '));
|
||
|
|
||
|
process.argv = process.argv
|
||
|
.slice(0, 2)
|
||
|
.concat(opts.concat(process.argv.slice(2)));
|
||
|
} catch (ignore) {
|
||
|
// NOTE: should console.error() and throw the error
|
||
|
}
|
||
|
|
||
|
process.env.LOADED_MOCHA_OPTS = true;
|
||
|
}
|