{"maintainers":[{"name":"tsertkov","email":"tsertkov@gmail.com"}],"keywords":["exec","spawn","terminal","console","shell","command","child_process"],"dist-tags":{"latest":"0.2.0","0.1.2":"0.1.2"},"author":{"name":"Aleksandr Tsertkov","email":"tsertkov@gmail.com"},"description":"Execute shell command forwarding all stdio.","readme":"# exec-sh\n\n[![NPM](https://nodei.co/npm/exec-sh.png)](https://nodei.co/npm/exec-sh/)\n\n[![Build Status](https://travis-ci.org/tsertkov/exec-sh.svg?branch=master)](https://travis-ci.org/tsertkov/exec-sh)\n[![Coverage Status](https://img.shields.io/coveralls/tsertkov/exec-sh.svg)](https://coveralls.io/r/tsertkov/exec-sh?branch=master)\n[![David Status](https://david-dm.org/tsertkov/exec-sh.png)](https://david-dm.org/tsertkov/exec-sh)\n\n> Execute shell command forwarding all stdio streams.\n\n## Features\n\nexec-sh is a wrapper for [`child_process.spawn`](http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options) with some improvements:\n\n- Cross platform command execution:\n  - Windows: `cmd /C COMMAND`\n  - others: `sh -c COMMAND`\n- Fowrards all stdio streams to current terminal (by default):\n  - `execSh(\"bash\")`\n  - `execsh(\"echo -n Say: && read i && echo Said:$i\")`\n- stdout and stderr are passed to callback when available\n  - `execSh(\"pwd\", console.log)`\n\n## Showcase\n```javascript\n// JavaScript\n\nexecSh(\"echo hello exec-sh && bash\", { cwd: \"/home\" }, function(err){\n  if (err) {\n    console.log(\"Exit code: \", err.code);\n  }\n});\n```\n\n```sh\n# Terminal output: interactive bash session\n\nhello exec-sh\nbash-3.2$ pwd\n/home\nbash-3.2$ exit 99\nexit\nExit code:  99\n```\n\n## Usage\n\n```javascript\nvar execSh = require(\"../\");\n\n// run interactive bash shell\nexecSh(\"echo lorem && bash\", { cwd: \"/home\" }, function(err){\n  if (err) {\n    console.log(\"Exit code: \", err.code);\n    return;\n  }\n\n  // collect streams output\n  var child = execSh([\"bash -c id\", \"echo lorem >&2\"], true,\n    function(err, stdout, stderr){\n      console.log(\"error: \", err);\n      console.log(\"stdout: \", stdout);\n      console.log(\"stderr: \", stderr);\n    });\n});\n```\n\n## Public API\n\n### execSh(command, [options], [callback])\n\nExecute shell command forwarding all stdio.\n\n**Parameters:**\n\n- *command* {String | Array} - The command to run, or array of commands\n- *[options]* {Object | TRUE} - Options object passed directly to [`child_process.spawn`](http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options), when `TRUE` then `{ stdio: null }` used\n- *[callback]* {Function} - `callback(err, stdout, stderr)`\n - *err* {Error | NULL} - Error object. Has `code` property containing last command exit code when available\n - *stdout* {String | NULL} - aggregated stdout or `NULL` if not available\n - *stderr* {String | NULL} - aggregated stderr or `NULL` if not available\n\n**Return Values:**\n\nReturns [ChildProcess](http://nodejs.org/api/child_process.html#child_process_class_childprocess) object.\n\n## Private API\nComplete API Documentation including private and public methods is generated from source code by JSDoc tool and is [available here](https://s3.eu-central-1.amazonaws.com/tsertkov-artifacts/exec-sh/master/jsdoc/index.html).\n\n## Code Coverage\nCode coverage report for all files is [available here](https://s3.eu-central-1.amazonaws.com/tsertkov-artifacts/exec-sh/master/coverage/lcov-report/index.html).\n\n## Scripts\n\n- `npm test` - run tests\n- `npm run jsdoc` - build jsdoc\n\n## License\n\nThe MIT License (MIT)","repository":{"type":"git","url":"git@github.com:tsertkov/exec-sh.git"},"users":{"cypark":true},"bugs":{"url":"https://github.com/tsertkov/exec-sh/issues"},"license":{"type":"MIT","url":"https://github.com/tsertkov/exec-sh/blob/master/LICENSE"},"versions":{"0.1.0":{"name":"exec-sh","version":"0.1.0","description":"Execute shell command forwarding all stdio.","main":"lib/exec-sh.js","scripts":{"test":"mocha && jshint lib/ example/ test/ package.json","jsdoc":"jsdoc --private --destination jsdoc lib/"},"repository":{"type":"git","url":"git@github.com:tsertkov/exec-sh.git"},"keywords":["exec","spawn","terminal","console","shell","command","child_process"],"author":{"name":"Aleksandr Tsertkov","email":"tsertkov@gmail.com"},"license":{"type":"MIT","url":"https://github.com/tsertkov/exec-sh/blob/master/LICENSE"},"bugs":{"url":"https://github.com/tsertkov/exec-sh/issues"},"dependencies":{"merge":"^1.1.3"},"devDependencies":{"jsdoc":"^3.3.0-alpha8","jshint":"^2.5.1","mocha":"^1.20.1","sinon":"^1.10.2"},"homepage":"https://github.com/tsertkov/exec-sh","_id":"exec-sh@0.1.0","_shasum":"a28717ad7f794bc8749896fa8f71f43f7587faf4","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"tsertkov","email":"tsertkov@gmail.com"},"maintainers":[{"name":"tsertkov","email":"tsertkov@gmail.com"}],"dist":{"shasum":"a28717ad7f794bc8749896fa8f71f43f7587faf4","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/exec-sh/-/exec-sh-0.1.0.tgz"},"directories":{}},"0.1.2":{"name":"exec-sh","version":"0.1.2","description":"Execute shell command forwarding all stdio.","main":"lib/exec-sh.js","scripts":{"test":"mocha && jshint lib/ example/ test/ package.json","jsdoc":"jsdoc --private --destination jsdoc lib/"},"repository":{"type":"git","url":"git@github.com:tsertkov/exec-sh.git"},"keywords":["exec","spawn","terminal","console","shell","command","child_process"],"author":{"name":"Aleksandr Tsertkov","email":"tsertkov@gmail.com"},"license":{"type":"MIT","url":"https://github.com/tsertkov/exec-sh/blob/master/LICENSE"},"bugs":{"url":"https://github.com/tsertkov/exec-sh/issues"},"dependencies":{"merge":"^1.1.3"},"devDependencies":{"jsdoc":"^3.3.0-alpha8","jshint":"^2.5.1","mocha":"^1.20.1","sinon":"^1.10.2"},"homepage":"https://github.com/tsertkov/exec-sh","_id":"exec-sh@0.1.2","_shasum":"70cd769534bd5bb6f62c95aa86ff924ffbd754df","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"tsertkov","email":"tsertkov@gmail.com"},"maintainers":[{"name":"tsertkov","email":"tsertkov@gmail.com"}],"dist":{"shasum":"70cd769534bd5bb6f62c95aa86ff924ffbd754df","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/exec-sh/-/exec-sh-0.1.2.tgz"},"directories":{}},"0.1.3":{"name":"exec-sh","version":"0.1.3","description":"Execute shell command forwarding all stdio.","main":"lib/exec-sh.js","scripts":{"test":"mocha --reporter spec && jshint lib/ example/ test/ package.json","jsdoc":"jsdoc --private --destination jsdoc lib/"},"repository":{"type":"git","url":"git@github.com:tsertkov/exec-sh.git"},"keywords":["exec","spawn","terminal","console","shell","command","child_process"],"author":{"name":"Aleksandr Tsertkov","email":"tsertkov@gmail.com"},"license":{"type":"MIT","url":"https://github.com/tsertkov/exec-sh/blob/master/LICENSE"},"bugs":{"url":"https://github.com/tsertkov/exec-sh/issues"},"dependencies":{"merge":"^1.1.3"},"devDependencies":{"jsdoc":"^3.3.0-alpha8","jshint":"^2.5.1","mocha":"^1.20.1","sinon":"^1.10.2"},"homepage":"https://github.com/tsertkov/exec-sh","_id":"exec-sh@0.1.3","_shasum":"3754305c77ce2c38da5f39771460262464eb35e2","_from":".","_npmVersion":"1.4.10","_npmUser":{"name":"tsertkov","email":"tsertkov@gmail.com"},"maintainers":[{"name":"tsertkov","email":"tsertkov@gmail.com"}],"dist":{"shasum":"3754305c77ce2c38da5f39771460262464eb35e2","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/exec-sh/-/exec-sh-0.1.3.tgz"},"directories":{}},"0.1.4":{"name":"exec-sh","version":"0.1.4","description":"Execute shell command forwarding all stdio.","main":"lib/exec-sh.js","scripts":{"test":"npm run cover-test && jshint","cover-test":"istanbul cover --dir artifacts/coverage _mocha -- --reporter spec","jshint":"jshint lib/ example/ test/","jsdoc":"jsdoc --private --destination artifacts/jsdoc lib/"},"repository":{"type":"git","url":"git@github.com:tsertkov/exec-sh.git"},"keywords":["exec","spawn","terminal","console","shell","command","child_process"],"author":{"name":"Aleksandr Tsertkov","email":"tsertkov@gmail.com"},"license":{"type":"MIT","url":"https://github.com/tsertkov/exec-sh/blob/master/LICENSE"},"bugs":{"url":"https://github.com/tsertkov/exec-sh/issues"},"dependencies":{"merge":"^1.1.3"},"devDependencies":{"coveralls":"^2.11.2","istanbul":"^0.3.2","jsdoc":"^3.3.0-alpha8","jshint":"^2.5.1","mocha":"^1.20.1","sinon":"^1.10.2"},"gitHead":"8ca1291adf903e5e86ef66a2c75ef5292ee4f006","homepage":"https://github.com/tsertkov/exec-sh","_id":"exec-sh@0.1.4","_shasum":"54cb8f528923c449d1b055b9a572e3300def377e","_from":".","_npmVersion":"2.1.6","_nodeVersion":"0.10.33","_npmUser":{"name":"tsertkov","email":"tsertkov@gmail.com"},"maintainers":[{"name":"tsertkov","email":"tsertkov@gmail.com"}],"dist":{"shasum":"54cb8f528923c449d1b055b9a572e3300def377e","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/exec-sh/-/exec-sh-0.1.4.tgz"},"directories":{}},"0.2.0":{"name":"exec-sh","version":"0.2.0","description":"Execute shell command forwarding all stdio.","main":"lib/exec-sh.js","scripts":{"test":"npm run cover-test && jshint","cover-test":"istanbul cover --dir artifacts/coverage _mocha -- --reporter spec","jshint":"jshint lib/ example/ test/","dev":"mocha --reporter spec --watch","jsdoc":"jsdoc --private --destination artifacts/jsdoc lib/"},"repository":{"type":"git","url":"git@github.com:tsertkov/exec-sh.git"},"keywords":["exec","spawn","terminal","console","shell","command","child_process"],"author":{"name":"Aleksandr Tsertkov","email":"tsertkov@gmail.com"},"license":{"type":"MIT","url":"https://github.com/tsertkov/exec-sh/blob/master/LICENSE"},"bugs":{"url":"https://github.com/tsertkov/exec-sh/issues"},"dependencies":{"merge":"^1.1.3"},"devDependencies":{"coveralls":"^2.11.2","istanbul":"^0.3.2","jsdoc":"^3.3.0-alpha8","jshint":"^2.5.1","mocha":"^1.20.1","sinon":"^1.10.2"},"gitHead":"33a0a3731e78838f7f56d31cfcb737b3d510a526","homepage":"https://github.com/tsertkov/exec-sh","_id":"exec-sh@0.2.0","_shasum":"14f75de3f20d286ef933099b2ce50a90359cef10","_from":".","_npmVersion":"2.1.6","_nodeVersion":"0.10.33","_npmUser":{"name":"tsertkov","email":"tsertkov@gmail.com"},"maintainers":[{"name":"tsertkov","email":"tsertkov@gmail.com"}],"dist":{"shasum":"14f75de3f20d286ef933099b2ce50a90359cef10","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/exec-sh/-/exec-sh-0.2.0.tgz"},"directories":{}}},"name":"exec-sh","time":{"modified":"2014-11-26T17:33:03.462Z","created":"2014-06-14T02:12:40.937Z","0.1.0":"2014-06-14T02:12:40.937Z","0.1.2":"2014-06-14T18:26:18.792Z","0.1.3":"2014-06-14T20:09:44.209Z","0.1.4":"2014-11-26T15:48:03.704Z","0.2.0":"2014-11-26T17:33:03.462Z"},"readmeFilename":"README.md","homepage":"https://github.com/tsertkov/exec-sh"}