@svkeg/spawn-cmd
v0.0.1
Published
Cross platform child_process execution in Node
Downloads
3
Readme
Spawn-CMD
- Spawn child process in Node with ease
Dependencies
Install
- Download the repo
// Clone repo git clone https://github.com/lancetipton/spawn-cmd.git // Or Add to package.json "dependencies": { "spawn-cmd": "git+https://github.com/lancetipton/spawn-cmd.git" ... },
- Add to your code
// * Require code const { spawnCmd } = require('spawn-cmd') // Spawns a new terminal session and runs `ls -la` inside of it await spawnCmd('ls -la') // Pass in a config object as the second argument // See more information about the config in the config section const config = { args: [ '-la' ] cwd: __dirname } await spawnCmd('ls', config) // Pass in a directory to run the command from as the third argument const config = { args: [ '-la' ] cwd: __dirname } await spawnCmd('ls', config, path.join(__dirname, '../'))
Config Object
- args - Arguments to pass to the spawned command
- cwd - Directory to run the command from
- This can be overwirtten by passing the cwd as a third argument
- onExit - Called when the process exits
- onStdErr - Called on stderr output
- onError - Called on an error other then stderr
- onStdOut - Called on stdout
- options - Settings to pass to the spawned process
- Is joined with the default settings below
defaultSettings = { gid: process.getgid(), uid: process.getuid(), env: process.env, cwd: rootDir, // Project root directory, NOT spawn-cmd directory stdio: 'inherit', }
- Is joined with the default settings below
Extra Command
asyncCmd
- Extra command that wraps around nodes
child_process.exec
- Makes it a promise wrapped in a try/catch
- Also adds the commands exit code
- Promise resolves consistently
- Example =>
const { asyncCmd } = require('spawn-cmd') ;(()=>{ const { error, data, exitCode } = await asyncCmd('echo test') // String output of stderr console.log(error) // String output of stdout console.log(data) // Numbered exit code from the command // 0 === success, anything else is exit from error console.log(exitCode) })()