atropa-cmd

Utilities for executing commandlines.

npm install atropa-cmd
42 downloads in the last month

Atropa CMD

Utilities for executing commandlines

This package provides a few utilies for executing commandline programs. It provides an asynchronous command runner, an asynchronous command register, and a synchronous command register. The idea is that sometimes we need to wait for commands to return, sometimes we do not. By grouping the commands into sets of synchronous and asynchronous it's easier to manage process flow. Let the commands run wild doing their own thing if they don't depend on eachother. When they're finished, run another set of commands that uses the output of the first set. The point is to block when you have to, go async when you can, and be able to control the timing of it all without tripping over yourself.

It's easy.

  • Create an instance of an async or sync register.
  • Use the addCommand method of the register to add commands to it.
  • Set listeners if you need notifications. Set callbacks if you need stdout.
  • Call the registers process function to process the queue of functions.
var cmd, syncy;

cmd = require('atropa-cmd');

function logStdout(err, stdout, stderr) {
    console.log(stdout);
}

syncy = new cmd.commandRegister.Synchronous('Syncy');

syncy.on('command executing', function(e) {
    console.log('command executing');
    console.dir(e);
    console.log();
});

syncy.addCommand('dir', 'C:\\Users\\kastor\\Desktop', logStdout);
syncy.addCommand('tree /A', 'C:\\Users\\kastor\\Desktop', logStdout);
syncy.process();

For more details see the example script, or the comments in the code. The script is really small, it's likely easiest just to read it.

npm loves you