diff options
Diffstat (limited to 'dgbuilder/tools/multiple_dg_load.js')
-rw-r--r-- | dgbuilder/tools/multiple_dg_load.js | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/dgbuilder/tools/multiple_dg_load.js b/dgbuilder/tools/multiple_dg_load.js new file mode 100644 index 00000000..8640667e --- /dev/null +++ b/dgbuilder/tools/multiple_dg_load.js @@ -0,0 +1,115 @@ + +var fs = require('fs'); +var obj =[]; +try{ + obj = JSON.parse(fs.readFileSync(process.argv[2], 'utf8')); +}catch(err){ +} +var dirPath=process.argv[3]; +console.log(dirPath); +function getID() { + return (1+Math.random()*4294967295).toString(16); +} + +var filteredArray = obj.filter(function(itm){ + return itm.type == 'tab' ; +}); + +var tabsArr=filteredArray; + var files = fs.readdirSync(dirPath); + for (var i in files) { + var currentFile = dirPath + '/' + files[i]; + //console.log(currentFile); + var stats = fs.statSync(currentFile); +try{ + if (stats.isFile()) { + var moduleName=""; + var methodName=""; + console.log("processing... " + currentFile); + var o = JSON.parse(fs.readFileSync(currentFile, 'utf8')); + for(var idx in o){ + if(o[idx].type == "service-logic"){ + moduleName=o[idx].name; + } + if(o[idx].type == "method"){ + methodName=o[idx].name; + methodName = methodName.replace("method ",""); + } + if(moduleName != "" && methodName != ""){ + break; + } + } + var id = o[0].z; + //console.log("tab id:" + id); + var newId = id; + var number_of_tabs = 0; + if(filteredArray != null ){ + number_of_tabs = filteredArray.length; + } + //console.log("number_of_tabs:" + number_of_tabs); + //console.log("id:" + id); + if(filteredArray != null && filteredArray.length > 0){ + for(var i in filteredArray){ + if(filteredArray[i].id == id){ + newId = getID(); + console.log("Using new id:" + newId); + } + } + for(var idx in o){ + o[idx].z= newId; + var oldNodeId = o[idx].id; + var newNodeId = getID(); + o[idx].id= newNodeId; + for(var k=0;k<o.length;k++){ + if(o[k] != null && o[k].wires != undefined && o[k].wires != null){ + for(var j=0;o[k].wires[0] != null && j< o[k].wires[0].length;j++){ + if(o[k].wires[0][j] == oldNodeId){ + o[k].wires[0][j]=newNodeId; + } + + } + } + } + } + } + //"label": "Sheet " + (number_of_tabs + 1), + var tabObj= { + "id": newId, + "label": methodName, + "type": "tab" + }; + + filteredArray.push(tabObj); + obj.unshift(tabObj); + for(var idx in o){ + obj.push(o[idx]); + } + //console.dir(obj); + } +}catch(err){ + console.log(err); +} +}; +function getCurrentDate(){ + var d = new Date(); + var mm = d.getMonth() + 1; + var dd = d.getDate(); + var yyyy = d.getYear() + 1900; + var hr = d.getHours(); + var min = d.getMinutes(); + var sec = d.getSeconds(); + if(mm<10) mm = "0" + mm; + if(dd<10) dd = "0" + dd; + if(hr<10) hr = "0" + hr; + if(min<10) min = "0" + min; + if(sec<10) sec = "0" + sec; + var formatedValue = mm + "-" + dd + "-" + yyyy + "_" + hr + "" + min + "" + sec; + return formatedValue; + } +if (fs.existsSync(process.argv[2])) { + fs.renameSync(process.argv[2],process.argv[2]+ "_" + getCurrentDate()); +} +fs.writeFileSync( process.argv[2] + ".new", JSON.stringify(obj)); +if (fs.existsSync(process.argv[2] + ".new")) { + fs.renameSync(process.argv[2] + ".new",process.argv[2]); +} |