var obj={}; function dotToJson(str,value,obj){ //var objArr = path.split("."), part; var objArr = str.split("."); var prevStr; var currObj; var prevObj; //console.log(str); var isArray = false; var prevObjIsArray = false; for(var i=0;i<objArr.length -1;i++){ var subStr= objArr[i] ; if(isArray){ prevObjIsArray = true; } isArray = false; if(subStr.indexOf(']') == subStr.length -1){ subStr = subStr.substring(0,subStr.length -2); isArray = true; } //console.log("subStr:" + subStr + isArray); //console.dir(prevObj); if(isArray){ if(i==0 && obj[subStr] == undefined ){ //console.log("i==0 && obj[subStr] "); obj[subStr]=[]; }else if(i==0 && obj[subStr][0] == undefined ){ obj[subStr][0]={}; }else if(i==0 && obj[subStr][0] != undefined ){ currObj= obj[subStr][0]; }else{ if(i == 1){ //console.log("i==1 && obj[prevStr] "); prevObj=obj[prevStr]; if(prevObj[subStr] != undefined && prevObj[subStr][0] == undefined){ prevObj[subStr] = []; prevObj[subStr][0] = {}; currObj = prevObj[subStr][0]; }else if(prevObj[subStr] != undefined && prevObj[subStr][0] != undefined){ currObj = prevObj[subStr][0]; }else if(prevObj[subStr] == undefined){ prevObj[subStr] = []; prevObj[subStr][0] = {}; currObj = prevObj[subStr][0]; } }else{ if(prevObj[subStr] == undefined){ prevObj[subStr]=[]; prevObj[subStr][0]={}; currObj = prevObj[subStr][0]; }else{ currObj = prevObj[subStr][0]; } } } }else{ if(i==0 && obj[subStr] == undefined ){ obj[subStr] = {}; currObj= obj[subStr]; }else if(i==0 && obj[subStr] != undefined ){ currObj=obj[subStr]; //console.log("in gkjgjkg"); }else{ if(i == 1){ prevObj=obj[prevStr]; if(prevObj[subStr] == undefined){ prevObj[subStr] = {}; currObj = prevObj[subStr]; }else{ currObj = prevObj[subStr]; } }else{ if(prevObj[subStr] == undefined){ prevObj[subStr] = {}; currObj = prevObj[subStr]; }else{ currObj = prevObj[subStr]; } } } } prevStr=subStr; if(i <objArr.length-2){ //console.dir(currObj); prevObj=currObj; } } var lastStr = objArr[objArr.length-1]; if(isArray){ currObj[lastStr] = value; }else{ currObj[lastStr] = value; } //prevObj[lastStr] = value; //console.dir(currObj); return obj; } function printObj(obj){ for( j in obj){ console.log(j + ":" + obj[j]); if(typeof obj[j] == "object" ){ printObj(obj[j]); } } } /* var nObj={}; for(var i=0;i<a.length;i++){ dotToJson(a[i],'',nObj); } */ var sliValuesObj = require(process.argv[2]); var moduleName = process.argv[3]; //console.dir(sliValuesObj); var a= sliValuesObj[moduleName + "_VALUES"]; var rpcs= sliValuesObj[moduleName + "_RPCS"]; var nObj={}; nObj['moduleName'] = moduleName; console.log("module.exports = "); for(var i=0;i<a.length;i++){ var key =a[i].substring(0,a[i].indexOf(':')); //console.log(key); var value =a[i].substring(a[i].indexOf(':') +1); if(value == undefined) value =""; dotToJson(key,value,nObj); } nObj[moduleName + "_PROPS"] =[]; for(var i=0;i<a.length;i++){ var key =a[i].substring(0,a[i].indexOf(':')); nObj[moduleName + "_PROPS"].push(key); } nObj[moduleName + "_RPCS"] = rpcs; console.log(JSON.stringify(nObj,null,4));