diff --git a/src/stdlib/buffered-process.coffee b/src/stdlib/buffered-process.coffee index eda128601..94c75137c 100644 --- a/src/stdlib/buffered-process.coffee +++ b/src/stdlib/buffered-process.coffee @@ -1,4 +1,6 @@ ChildProcess = require 'child_process' +path = require 'path' +_ = require 'underscore' module.exports = class BufferedProcess @@ -6,6 +8,8 @@ class BufferedProcess killed: false constructor: ({command, args, options, stdout, stderr, exit}={}) -> + options ?= {} + @addNodeDirectoryToPath(options) @process = ChildProcess.spawn(command, args, options) stdoutClosed = true @@ -36,6 +40,14 @@ class BufferedProcess processExited = true triggerExitCallback() + addNodeDirectoryToPath: (options) -> + options.env ?= process.env + pathSegments = [] + nodeDirectoryPath = path.resolve(process.execPath, '..', '..', '..', '..', 'Resources') + pathSegments.push(nodeDirectoryPath) + pathSegments.push(options.env.PATH) if options.env.PATH + options.env = _.extend({}, options.env, PATH: pathSegments.join(path.delimiter)) + bufferStream: (stream, onLines, onDone) -> stream.setEncoding('utf8') buffered = ''