3 var _spawn = require("child_process").spawn
4 var EventEmitter = require("events").EventEmitter
6 function spawn (cmd, args, options) {
7 var raw = _spawn(cmd, args, options)
8 var cooked = new EventEmitter()
10 raw.on("error", function (er) {
12 cooked.emit("error", er)
13 }).on("close", function (code, signal) {
14 // Create ENOENT error because Node.js v0.8 will not emit
15 // an `error` event if the command could not be found.
17 var er = new Error('spawn ENOENT')
22 cooked.emit('error', er)
24 cooked.emit("close", code, signal)
28 cooked.stdin = raw.stdin
29 cooked.stdout = raw.stdout
30 cooked.stderr = raw.stderr
31 cooked.kill = function (sig) { return raw.kill(sig) }