blob: 8640667eb603dcdda793a0ab173d138142f2a730 [file] [log] [blame]
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]);
}