msnode-cmd
v3.0.0
Published
Simple commandline/terminal interface to allow you to run cli or bash style commands as if you were in the terminal.
Downloads
3
Maintainers
Readme
msnode-cmd
Node.js commandline/terminal interface.
Simple commandline or terminal interface to allow you to run cli or bash style commands as if you were in the terminal.
Run commands asynchronously, and if needed can get the output as a string.
NPM Stats
npm info :
See npm trends and stats for node-cmd
GitHub info :
Package details websites :
- GitHub.io site. A prettier version of this site.
- NPM Module. The npm page for the node-cmd module.
This work is licenced via the DBAD Public Licence.
Methods
|method | arguments | functionality | |-------|-----------|---------------| |run | command | runs a command asynchronously| |get | command,callback | runs a command asynchronously, when the command is complete all of the stdout will be passed to the callback|
Examples
var cmd=require('node-cmd');
cmd.get(
'pwd',
function(err, data, stderr){
console.log('the current working dir is : ',data)
}
);
cmd.run('touch example.created.file');
cmd.get(
'ls',
function(err, data, stderr){
console.log('the current dir contains these files :\n\n',data)
}
);
cmd.get(
`
git clone https://github.com/RIAEvangelist/node-cmd.git
cd node-cmd
ls
`,
function(err, data, stderr){
if (!err) {
console.log('the node-cmd cloned dir contains these files :\n\n',data)
} else {
console.log('error', err)
}
}
);
With promises
this example by @stephen-last
import Promise from 'bluebird'
import cmd from 'node-cmd'
const getAsync = Promise.promisify(cmd.get, { multiArgs: true, context: cmd })
getAsync('node -v').then(data => {
console.log('cmd data', data)
}).catch(err => {
console.log('cmd err', err)
})
Accessing the CMD Process
If you need PIDs, stdio,stdin, stdout, stderr, etc. access, for use in your code, or cleaning up, @freemany added in some functionality to get a reference to the child process as the returned value of the get
and run
calls.
Getting Process ID
var cmd=require('../cmd.js');
var process=cmd.get('node');
console.log(process.pid);
Running a python shell from node
const cmd=require('../cmd.js');
const processRef=cmd.get('python -i');
let data_line = '';
//listen to the python terminal output
processRef.stdout.on(
'data',
function(data) {
data_line += data;
if (data_line[data_line.length-1] == '\n') {
console.log(data_line);
}
}
);
const pythonTerminalInput=`primes = [2, 3, 5, 7]
for prime in primes:
print(prime)
`;
//show what we are doing
console.log(`>>>${pythonTerminalInput}`);
//send it to the open python terminal
processRef.stdin.write(pythonTerminalInput);
Output :
>>>primes = [2, 3, 5, 7]
for prime in primes:
print(prime)
2
3
5
7