Skip to content

Flexible and cross-platform executing commands. Hybrid, Async and Promise API.

License

Notifications You must be signed in to change notification settings

hybridables/exec-cmd

Repository files navigation

exec-cmd npmjs.com The MIT License

Flexible and cross-platform executing commands. Hybrid, Async and Promise API.

code climate standard code style travis build status coverage status dependency status

Install

npm i exec-cmd --save
npm test

API

For more use-cases see the tests

Hybrid execute command via spawn. Actually this is hybridify wrapper for async-exec-cmd, so for more detailed information see async-exec-cmd readme

  • <cmd> {String} command to execute
  • [args] {Array} sub-commands or flags, you also can pass them to cmd
  • [opts] {Object} options to pass to cross-spawn and child_process.spawn
  • [cb] {Function} optional node style callback
  • returns {Promise}

Example:

The command will directly output "Hello world!", because stdio: inherit, so res[0] which is the actual response of execution, will be empty string ''.

var run = require('exec-cmd')
var promise = run('echo "Hello world!"', {stdio: 'inherit'})

promise
.then(function(res) {
  var stdout = res[0]
  var code = res[1]
  var buffer = res[2]

  console.log(stdout, code, buffer)
  //=> '' 0 <Buffer >
})
.catch(console.error)

More advanced example

Say we want to install bluebird as dev dependency and after that uninstall it.

var run = require('exec-cmd');

run('npm install', ['--save-dev', 'bluebird'])
.then(function(arr) {
  var res = arr[0];
  var code = arr[1];
  var buffer = arr[2];

  console.log(res);
  //=> 'bluebird@2.9.3 node_modules/bluebird'

  // So we now want to uninstall it,
  // but we want to show response directly on console (stdout)
  return run('npm', ['uninstall', '--save-dev', 'bluebird'], {stdio: 'inherit'})
})
.then(function(arr) {
  // not need to console.log something,
  // it will directly output this
  //=> unbuild bluebird@2.9.3
})
.catch(console.error)

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
But before doing anything, please read the CONTRIBUTING.md guidelines.

tunnckocore.tk keybase tunnckocore tunnckoCore npm tunnckoCore twitter tunnckoCore github

About

Flexible and cross-platform executing commands. Hybrid, Async and Promise API.

Resources

License

Stars

Watchers

Forks

Packages

No packages published