diff options
Diffstat (limited to 'dgbuilder/tools/dot_to_json.js')
-rw-r--r-- | dgbuilder/tools/dot_to_json.js | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/dgbuilder/tools/dot_to_json.js b/dgbuilder/tools/dot_to_json.js new file mode 100644 index 00000000..7ff80e8b --- /dev/null +++ b/dgbuilder/tools/dot_to_json.js @@ -0,0 +1,138 @@ +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)); |