ember-introjs
Version:
An Ember Component for intro.js
44 lines (37 loc) • 1.3 kB
JavaScript
var util = require("util"),
Promise = require("promised-io").Promise,
spawn = require('child_process').spawn,
fs = require("fs");
module.exports.tasks = {
exec: function(options,config,logger){
var p = new Promise();
logger.info("platform is: " + process.platform);
//grab the correct options
var opt;
Array.from(options).each(function(o){
if (o.os.contains(process.platform)){
opt = o;
}
});
var opts = Object.merge({ cwd: undefined,
env: process.env,
customFds: [-1, -1, -1],
setsid: false
},opt.options);
logger.warn("type of process.env: " + typeOf(process.env));
//logger.warn("options object after merge: " + util.inspect(opts,false,null));
var exec = spawn(opt.cmd,opt.args,opt.options);
//hook events to get status
exec.stdout.on("data",function(data){
logger.info(data);
});
exec.stderr.on('data', function(data) {
logger.debug('exec errored: ' + data);
throw new Error(data);
});
exec.on('exit', function(code) {
p.resolve(true);
});
return p;
}
};