]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/lib/utils/spawn.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / lib / utils / spawn.js
1 module.exports = spawn
2
3 var _spawn = require("child_process").spawn
4 var EventEmitter = require("events").EventEmitter
5
6 function spawn (cmd, args, options) {
7   var raw = _spawn(cmd, args, options)
8   var cooked = new EventEmitter()
9
10   raw.on("error", function (er) {
11     er.file = cmd
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.
16     if (code === 127) {
17       var er = new Error('spawn ENOENT')
18       er.code = 'ENOENT'
19       er.errno = 'ENOENT'
20       er.syscall = 'spawn'
21       er.file = cmd
22       cooked.emit('error', er)
23     } else {
24       cooked.emit("close", code, signal)
25     }
26   })
27
28   cooked.stdin = raw.stdin
29   cooked.stdout = raw.stdout
30   cooked.stderr = raw.stderr
31   cooked.kill = function (sig) { return raw.kill(sig) }
32
33   return cooked
34 }