comandante
Version:
spawn() that returns a duplex stream and emits errors with stderr data on non-zero exit codes
70 lines (49 loc) • 1.86 kB
Markdown
when the command exits
with a non-zero code.
[](http://travis-ci.org/substack/comandante)
``` js
var run = require('commandante');
run('git', [ 'log' ]).pipe(process.stdout);
```
in a git directory we get:
```
$ node example/log.js | head -n3
commit ae5045cce4980a87b7151cfe91bc5889951aae39
Author: James Halliday <mail@substack.net>
Date: Tue Oct 2 09:08:18 2012 -0700
```
in a non-git directory we get:
```
events.js:66
throw arguments[1]; // Unhandled 'error' event
^
Error: non-zero exit code 128: fatal: Not a git repository (or any of the parent directories): .git
at ChildProcess.<anonymous> (/home/substack/projects/comandante/index.js:19:27)
at ChildProcess.EventEmitter.emit (events.js:91:17)
at maybeClose (child_process.js:634:16)
at Socket.ChildProcess.spawn.stdin (child_process.js:805:11)
at Socket.EventEmitter.emit (events.js:88:17)
at Socket._destroy.destroyed (net.js:358:10)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)
```
# methods
``` js
var commandante = require('commandante')
```
Spawn a new process like `require('child_process')`.spawn()`, except the return
value is a duplex stream combining `stdout` and `stdin`.
If the process exits with a non-zero status, emit an `'error'` event with the
stderr data and the code in an informative message.
If `opts.showCommand` is not `false`, show the actual command in the informative
error message. If you are running a command with passwords in the command
arguments make sure to set `showCommand` to `false`.
With [npm](https://npmjs.org) do:
```
npm install comandante
```
MIT
Spawn commands returning a duplex stream. Emit stderr