Skip to content

twolfson/buffered-spawn

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

buffered-spawn Build Status

Buffered child_process#spawn.

Installation

$ npm install buffered-spawn

Why

  • Easy to use
  • Uses cross-spawn that fixes windows issues
  • Supports callback & promise style

Usage

In terms of arguments, they are equal to node's spawn.

var buffspawn = require('buffered-spawn');

// Callback style
buffspawn('git', ['clone', 'git@github.com/bower/bower'], { cwd: '~/foo' }, function (err, stdout, stderr) {
    // Both stdout and stderr are set with the buffered output, even on failure
    if (err) {
        return console.err('Command failed with error code of #'  + err.status);
    }

    console.log(stdout);
    console.log(stderr);
});

// Promise style
buffspawn('git', ['clone', 'git@github.com/bower/bower'], { cwd: '~/foo' })
.spread(function (stdout, stderr) {
    console.log(stdout);
    console.log(stderr);
}, function (err) {
    // Besides err.status there's also err.stdout & err.stderr
    console.err('Command failed with error code of #'  + err.status);
});

When using promises you can also get feedback via progress:

buffspawn('git', ['clone', 'git@github.com/bower/bower'])
.progress(function (buff) {
    console.log(buff.toString());
})
.spread(function (stdout, stderr) {
    console.log('---------------------------');
    console.log(stdout);
    console.log(stderr);
}, function (err) {
    console.err('Command failed with error code of #'  + err.status);
});

The actual child process is available if necessary:

var buffspawn('buffered-spawn');

// Callback style
var cp = buffspawn('git', ['clone', 'git@github.com/bower/bower'], function () {}};

// Promise style
var promise = buffspawn('git', ['clone', 'git@github.com/bower/bower']);
var cp = promise.cp;

Tests

$ npm test

License

Released under the MIT License.

About

Buffered child_process#spawn

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%