From 03b840cb5fb8ff5217fefc9e1240a3131db309fc Mon Sep 17 00:00:00 2001 From: eric thul Date: Tue, 11 Aug 2015 20:57:07 -0400 Subject: PureScript 0.7 updates and migration to pulp --- src/PursLoader/ChildProcess.js | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/PursLoader/ChildProcess.js (limited to 'src/PursLoader/ChildProcess.js') diff --git a/src/PursLoader/ChildProcess.js b/src/PursLoader/ChildProcess.js new file mode 100644 index 0000000..d62aef6 --- /dev/null +++ b/src/PursLoader/ChildProcess.js @@ -0,0 +1,40 @@ +'use strict'; + +// module PursLoader.ChildProcess + +var child_process = require('child_process'); + +var chalk = require('chalk'); + +function spawnFn(command, args, errback, callback) { + return function(){ + var process = child_process.spawn(command, args); + + var stdout = new Buffer(0); + + var stderr = new Buffer(0); + + process.stdout.on('data', function(data){ + stdout = Buffer.concat([stdout, new Buffer(data)]); + }); + + process.stderr.on('data', function(data){ + stderr = Buffer.concat([stderr, new Buffer(data)]); + }); + + process.on('close', function(code){ + var output = stdout.toString('utf-8'); + + var error = stderr.toString('utf-8'); + + if (error.length > 0) { + console.error('\n' + chalk.red('*') + ' ' + error); + } + + if (code !== 0) errback(new Error('Process terminated with code ' + code))(); + else callback(output)(); + }); + }; +} + +exports.spawnFn = spawnFn; -- cgit v1.2.3