2014-04-06 00:22:39 +00:00
|
|
|
// Generated by CoffeeScript 1.7.1
|
2014-04-06 19:36:34 +00:00
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
runscript.js
|
|
|
|
|
------------
|
|
|
|
|
|
|
|
|
|
A script that helps to track errors happening durin coffee
|
|
|
|
|
compilation and running of module code
|
|
|
|
|
*/
|
|
|
|
|
|
2014-04-06 00:22:39 +00:00
|
|
|
(function() {
|
2014-04-06 19:36:34 +00:00
|
|
|
var code, crypto, cs, fs, issueApiCall, issueRequest, needle, params, request, sandbox, src, vm;
|
2014-04-06 00:22:39 +00:00
|
|
|
|
|
|
|
|
if (!process.argv[2]) {
|
|
|
|
|
console.log('Please provide a path to a coffee file');
|
|
|
|
|
process.exit();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fs = require('fs');
|
|
|
|
|
|
|
|
|
|
vm = require('vm');
|
|
|
|
|
|
|
|
|
|
cs = require('coffee-script');
|
|
|
|
|
|
2014-04-06 19:36:34 +00:00
|
|
|
needle = require('needle');
|
|
|
|
|
|
|
|
|
|
crypto = require('crypto-js');
|
|
|
|
|
|
|
|
|
|
request = require('request');
|
|
|
|
|
|
2014-04-06 00:22:39 +00:00
|
|
|
issueApiCall = function(method, url, data, options, cb) {
|
2014-04-06 19:36:34 +00:00
|
|
|
var err;
|
|
|
|
|
try {
|
|
|
|
|
return needle.request(method, url, data, options, (function(_this) {
|
|
|
|
|
return function(err, resp, body) {
|
|
|
|
|
try {
|
|
|
|
|
return cb(err, resp, body);
|
|
|
|
|
} catch (_error) {
|
|
|
|
|
err = _error;
|
|
|
|
|
return console.log('Error during needle request! ' + err.message);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
})(this));
|
|
|
|
|
} catch (_error) {
|
|
|
|
|
err = _error;
|
|
|
|
|
return console.log('Error before needle request! ' + err.message);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
issueRequest = function(options, cb) {
|
|
|
|
|
var err;
|
|
|
|
|
try {
|
|
|
|
|
return request(options, (function(_this) {
|
|
|
|
|
return function(err, resp, body) {
|
|
|
|
|
try {
|
|
|
|
|
return cb(err, resp, body);
|
|
|
|
|
} catch (_error) {
|
|
|
|
|
err = _error;
|
|
|
|
|
return console.log('Error during request! ' + err.message);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
})(this));
|
|
|
|
|
} catch (_error) {
|
|
|
|
|
err = _error;
|
|
|
|
|
return console.log('Error before request! ' + err.message);
|
|
|
|
|
}
|
2014-04-06 00:22:39 +00:00
|
|
|
};
|
|
|
|
|
|
2014-04-06 19:36:34 +00:00
|
|
|
params = JSON.parse(fs.readFileSync('params.json', 'utf8'));
|
2014-04-06 00:22:39 +00:00
|
|
|
|
2014-04-06 19:36:34 +00:00
|
|
|
code = fs.readFileSync(process.argv[2], 'utf8');
|
2014-04-06 00:22:39 +00:00
|
|
|
|
2014-04-06 19:36:34 +00:00
|
|
|
src = cs.compile(code);
|
2014-04-06 00:22:39 +00:00
|
|
|
|
|
|
|
|
sandbox = {
|
|
|
|
|
id: 'test.vm',
|
2014-04-06 19:36:34 +00:00
|
|
|
params: params.userparams,
|
2014-04-06 00:22:39 +00:00
|
|
|
needlereq: issueApiCall,
|
2014-04-06 19:36:34 +00:00
|
|
|
request: issueRequest,
|
|
|
|
|
cryptoJS: crypto,
|
2014-04-06 00:22:39 +00:00
|
|
|
log: console.log,
|
|
|
|
|
debug: console.log,
|
|
|
|
|
exports: {}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
vm.runInNewContext(src, sandbox, sandbox.id);
|
|
|
|
|
|
2014-04-06 19:36:34 +00:00
|
|
|
if (process.argv[3] === 'ep') {
|
|
|
|
|
sandbox.exports[process.argv[4]](function(evt) {
|
|
|
|
|
return console.log(evt);
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
sandbox.exports[process.argv[3]](params.event);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
console.log("If no error happened until here it seems the script compiled and ran correctly! Congrats!");
|
2014-04-06 00:22:39 +00:00
|
|
|
|
|
|
|
|
}).call(this);
|