runsync
Version:
Polyfill of spawnSync and execSync for Node-0.10.x (Unix only yet)
97 lines (68 loc) • 3 kB
Markdown
# runsync
Polyfill of spawnSync and execSync for Node-0.10.x ***(Unix only yet)***
[](https://travis-ci.org/norahiko/runsync)
[](https://coveralls.io/r/norahiko/runsync?branch=master)
[](https://nodei.co/npm/runsync/)
## Instllation
Requires [node-gyp] (https://github.com/TooTallNate/node-gyp)
```sh
$ npm install runsync
```
## Usage
```js
var runsync = require("runsync");
var result = runsync.spawn("echo", ["Hello", "World!"], { encoding: "utf8" });
console.log(result.stdout); // => Hello world!\n
runsync.exec("sleep 1");
result = runsync.popen("echo Error message 1>&2", { encoding: "utf8" });
console.log(result.stderr); // => Error message\n
```
## API
### `runsync.spawn(executable, [args], [options])`
* Polyfill of [child_process.spawnSync](http://nodejs.org/dist/v0.11.13/docs/api/child_process.html#child_process_child_process_spawnsync_command_args_options).
```js
var res = runsync.spawn("node", ["-e", "console.log('Hello, World!')"], { encoding: "utf8" });
console.log(res.stdout) // => 'Hello, World!\n'
```
-----
### `runsync.exec(command, [options])`
* Polyfill of [child_process.execSync](http://nodejs.org/dist/v0.11.13/docs/api/child_process.html#child_process_child_process_execsync_command_options).
```js
var output = runsync.exec("sleep 3 && echo Hello!", { timeout: 1000 });
// => throw Exception because of timeout
```
-----
### `runsync.execFile(command, [options])`
* Polyfill of [child_process.execFileSync](http://nodejs.org/dist/v0.11.13/docs/api/child_process.html#child_process_child_process_execfilesync_command_args_options).
```js
var html = runsync.execFile("curl", ["--silent", "-X", "GET", "http://example.com"]);
console.log(html.toString()); // => '<!doctype html>\n<html>\n<head>\n ...'
```
-----
### `runsync.popen(command, [options])`
* This is similar to `runsync.exec`, but it returns **spawn object** likes `runsync.spawn`.
* This method will not throw Exceptions even if command fails.
```js
var result = runsync.popen("echo `cat` && echo strerr 1>&2", { input: "stdin", encoding: "utf8" });
console.log(result.stdout) // => "stdin\n"
console.log(result.stderr) // => "stderr\n"
```
-----
### `runsync.shell(command, [options])`
* This is similar to `runsync.exec`, but always set **'inherit'** to **options.stdio**.
* Returns Nothing(undefined).
* This method will throw Exceptions if command fails.
```js
try {
runsync.shell("mocha --reporter nyan");
// 31 -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_,------,
// 1 -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_| /\_/\
// 0 -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-^|__( x .x)
// -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_- "" ""
// 31 passing (468ms)
// 1 failing
} catch(err) {
console.log(err.message);
// => 'Command failed: `mocha -u tdd --reporter nyan`'
}
```