diff options
| author | Anna Henningsen <[email protected]> | 2015-02-04 01:46:30 +0100 |
|---|---|---|
| committer | Anna Henningsen <[email protected]> | 2015-12-10 22:14:39 +0100 |
| commit | 7d9d9a4514c12c80b4c9475d57d674bf775c9149 (patch) | |
| tree | b28f1acc9da37a3fa619012906c6c3250aea0654 /lib | |
| parent | 3794d16027767014919116bd85a32e3d3de7efa8 (diff) | |
| download | node-coveralls-7d9d9a4514c12c80b4c9475d57d674bf775c9149.tar.xz node-coveralls-7d9d9a4514c12c80b4c9475d57d674bf775c9149.zip | |
Add command line option to write output to stdout
Adds the command line option pair -w/--write.
These options indicate that the output should be written to standard output,
rather than being posted to coveralls.io, which may be useful for debugging,
mixed-language codebases (e.g. node addons with C++ code) etc.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/getOptions.js | 14 | ||||
| -rw-r--r-- | lib/logger.js | 3 | ||||
| -rw-r--r-- | lib/sendToCoveralls.js | 18 |
3 files changed, 22 insertions, 13 deletions
diff --git a/lib/getOptions.js b/lib/getOptions.js index 144d0ad..78f1bf3 100644 --- a/lib/getOptions.js +++ b/lib/getOptions.js @@ -129,15 +129,11 @@ var getOptions = function(cb, _userOptions){ getBaseOptions(function(err, options){ // try to get filepath from the command-line - if (process.argv[2]) { - if (~['-v', '--verbose'].indexOf(process.argv[2])) { - if (process.argv[3]) { - options.filepath = process.argv[3]; - } - } else { - options.filepath = process.argv[2]; - } - } + // look into all command line arguments from index 2 which don't start with - + var firstNonOptionArgument = process.argv.slice(2).filter(RegExp.prototype.test.bind(/^[^-]/))[0]; + + if (firstNonOptionArgument) + options.filepath = firstNonOptionArgument; // lodash or else would be better, but no need for the extra dependency for (var option in userOptions) { diff --git a/lib/logger.js b/lib/logger.js index 9c27e0b..a847a41 100644 --- a/lib/logger.js +++ b/lib/logger.js @@ -10,7 +10,8 @@ function getLogLevel(){ } function hasVerboseCommandLineOption(){ - return process.argv[2] && ~['-v', '--verbose'].indexOf(process.argv[2]); + // look into command line arguments starting from index 2 + return process.argv.slice(2).filter(RegExp.prototype.test.bind(/^(-v|--verbose)$/)).length > 0; } function hasDebugEnvVariable(){ diff --git a/lib/sendToCoveralls.js b/lib/sendToCoveralls.js index 38b37f7..f574997 100644 --- a/lib/sendToCoveralls.js +++ b/lib/sendToCoveralls.js @@ -8,9 +8,21 @@ var sendToCoveralls = function(obj, cb){ var str = JSON.stringify(obj); var url = urlBase + '/api/v1/jobs'; - request.post({url : url, form : { json : str}}, function(err, response, body){ - cb(err, response, body); - }); + + if (hasWriteToStdoutOption()) { + process.stdout.write(str); + cb(null, { statusCode: 200 }, ''); + } else { + request.post({url : url, form : { json : str}}, function(err, response, body){ + cb(err, response, body); + }); + } }; +function hasWriteToStdoutOption(){ + // look into command line arguments starting from index 2 + return process.argv.slice(2).filter(RegExp.prototype.test.bind(/^(-w|--write)$/)).length > 0; +} + + module.exports = sendToCoveralls; |
