blob: 16041f1e77a60bb00eb052ccb50a9b708f8146d6 [file] [log] [blame]
process.stdin.setEncoding('utf8');
if (process.argv[2]=="--help"||process.argv[2]=="-h") {
help();
} else if (!process.stdin.isTTY) {
var input = "";
process.stdin.on('readable', () => {
var chunk = process.stdin.read();
if (chunk !== null) {
input += chunk;
}
});
process.stdin.on('end', () => {
const params = JSON.parse(input);
run(params);
});
} else {
let params = {};
for(var i=3;i<process.argv.length;i++) {
let [name,value] = process.argv[i].split('=');
params[name] = value;
}
run(params);
}
function help() {
console.log("");
console.log("Usage:");
console.log(" node test.js ./main.js foo=bar");
console.log(" echo '{\"foo\":\"bar\"}' | node test.js ./main.js");
}
function run(params) {
const actionToRun = process.argv[2];
if (!actionToRun) {
console.error("./test.js: Missing argument <action-to-run>");
help();
process.exit(1);
}
const imports = require(actionToRun);
//support a non-exported main function as a fallback
const action = imports.main ? imports.main : main;
let result = action(params);
if (result.then) {
Promise.resolve(result)
.then(result => console.log(result.toString("utf-8")))
.catch(error => console.error(error));
} else {
console.log(result);
}
}