var fs = require('fs'); const exec = require('child_process').exec; var path = process.argv[2]; var confPath = process.argv[3]; var nNodes = +process.argv[4]; run(); function run(){ if(process.argv.length !== 5){ console.log("Error! Expected 3 arguments:"); console.log(" <# nodes to generate>"); return; } if(!path) return new Error("bad path!"); if(!nNodes) return new Error("bad nNodes!"); if(!confPath) return new Error("bad confPath!"); var s = generateConfigSrcForN_nodes(); fs.writeFile(confPath, s, function(err) { if(err) { return console.log(err); } console.log("SGCT config generated!"); execChildProcesses(); }); } function execChildProcesses(){ for (var i = 0; i < nNodes; i++) { var cmd = path + " -local " + i; if(i > 0){ cmd += " --slave"; } console.log(cmd); exec(cmd, function(err, stdout, stderr){ if (err) { console.error(err); return; } console.log(stdout); console.error(stderr); }); } } function generateConfigSrcForN_nodes(){ var s = ""; s += '\ \n\ '; for (var i = 0; i < nNodes; i++) { s += generateNode(i); } s += '\n\ \n\ \n\ \n\ '; return s; } function generateNode(i){ var x = i > 0 ? ((640 + i * 578) % 1920) : 10; var y = i > 0 ? ((300 + i * 258) % 1080) : 30; return '\n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ \n\ '; }