5.1.0 • Published 3 years ago
shellton v5.1.0
shellton
Install
npm install --save shellton
Use
Basic example
var shellton = require('shellton');
shellton('echo all the things', function(err, stdout, stderr) {
console.log(stdout); // all the things
});
Using IO streams
You can pipe the standard output streams from the child process, as such:
var output = fs.createWriteStream('script-output.txt');
shellton({
task: 'node script.js',
stdout: output
// you can also do stderr here, if you need
// or just pipe it to the parent process io stream
stderr: process.stderr
}, function(err, stdout, stderr) {
console.log('script.js has exited');
});
You can also provide input to the external process, as such:
var input = fs.createReadStream('my-script.js');
shellton({
task: 'node',
stdin: input
}, function(err, stdout, stderr) {
console.log('my-script.js has exited');
});
Use your imagination here, and you can come up with some much more useful cases.
var shellton = require('shellton');
var through = require('through2');
var chalk = require('chalk');
function colorStream(name, writeStream) {
writeStream = writeStream || process.stdout;
var colorFunc = (chalk[name] || chalk.white).bind(chalk);
var stream = through();
stream.on('data', function(chunk) {
writeStream.write(colorFunc(chunk));
});
return stream;
}
var input = through();
// write to the parent's output stream in green
var output = colorStream('green', process.stdout);
// write to the parent's error stream in red
var error = colorStream('red', process.stderr);
shellton({
task: 'node',
stdin: input,
stdout: output,
stderr: error
});
// use any dynamically generated javascript
input.write('console.log("output is green");');
input.write('console.error("errors are red");');
input.end();
API
shellton(options, callback)
options
{string | Object} : The options defining the external task to execute. This parameter is required.
- When given a string, this is the command line command being executed. You can supply a full command, as you would normally type into bash or the Windows command prompt.
When given an object, the following properties are available:
task
{string} : the command to executed.stdin
{Stream} : a stream to pipe into the command.stdout
{Stream} : a stream to where the standard output of the command will be piped.stderr
{Stream} : a stream to where the standard error of the command will be piped.cwd
{string} : the directory from where the command will be executed. The default is the current directory of the parent process.env
{Object} : the environment variables for the child process. Values here will be merged with an overwrite values in the currentprocess.env
.encoding
{string} : the encoding to use to the data provided to the callback. The options areutf8
andbuffer
, withutf8
being the default.
callback
{function} : The callback to call when the child process exists. This parameter is optional. It receives the following parameters, in order:
error
{Error} : An error that occurred when executing the command. This generally means the command exited with a code other than 0.error.code
specifies the exit code of the command.stdout
{string|Buffer} : A string representation of the standard output of the command. If the command outputs binary, you will likely want to read directly fromstdout
in theoptions
object.stderr
{string|Buffer} : A string representation of the standard error of the command. If the command outputs binary, you will likely want to read directly fromstderr
in theoptions
object.
5.1.0
3 years ago
5.0.0
7 years ago
4.1.0
7 years ago
4.0.0
8 years ago
3.1.0
9 years ago
3.0.2
9 years ago
3.0.1
9 years ago
3.0.0
9 years ago
2.1.1
9 years ago
2.1.0
9 years ago
2.0.0
9 years ago
1.3.2
10 years ago
1.3.1
10 years ago
1.3.0
10 years ago
1.2.1
10 years ago
1.2.0
10 years ago
1.1.0
10 years ago
1.0.1
10 years ago
1.0.0
10 years ago