]> gerrit.simantics Code Review - simantics/district.git/blobdiff - 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
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/lib/utils/spawn.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/lib/utils/spawn.js
new file mode 100644 (file)
index 0000000..7468452
--- /dev/null
@@ -0,0 +1,34 @@
+module.exports = spawn
+
+var _spawn = require("child_process").spawn
+var EventEmitter = require("events").EventEmitter
+
+function spawn (cmd, args, options) {
+  var raw = _spawn(cmd, args, options)
+  var cooked = new EventEmitter()
+
+  raw.on("error", function (er) {
+    er.file = cmd
+    cooked.emit("error", er)
+  }).on("close", function (code, signal) {
+    // Create ENOENT error because Node.js v0.8 will not emit
+    // an `error` event if the command could not be found.
+    if (code === 127) {
+      var er = new Error('spawn ENOENT')
+      er.code = 'ENOENT'
+      er.errno = 'ENOENT'
+      er.syscall = 'spawn'
+      er.file = cmd
+      cooked.emit('error', er)
+    } else {
+      cooked.emit("close", code, signal)
+    }
+  })
+
+  cooked.stdin = raw.stdin
+  cooked.stdout = raw.stdout
+  cooked.stderr = raw.stderr
+  cooked.kill = function (sig) { return raw.kill(sig) }
+
+  return cooked
+}