Spawn-CMD
- Cross-Platform child_process library for Node
Dependencies
Install
- Install with 'yarn' or 'npm'
// With Yarn yarn add @keg-hub/spawn-cmd // With NPM npm install @keg-hub/spawn-cmd
- Add to your code
// * Require code const { spawnCmd } = require('@keg-hub/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('@keg-hub/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) })()