3 //extras=require("/home/users/schinthakayala/nodered/sheshi/dgxml/extras");
5 var path = require('path');
6 var appDir = path.dirname(require.main.filename);
12 var filename = process.argv[2];
13 console.log("reading json from flows file" + filename);
14 //flowsJson=fs.readFileSync(appDir + "/flows_ss4nj01dev01.localdomain.json").toString();
15 flowsJson=fs.readFileSync(filename).toString();
16 // Let's make a backup while we're here...
17 ts=Date.now().toString();
18 flows=JSON.parse(flowsJson);
19 //console.log("returning flows");
23 function getStartTag(xmlStr){
26 xmlStr = xmlStr.trim();
29 var regex = new RegExp("(<)([^ >]+)");
30 var match = regex.exec(xmlStr);
32 if(match[1] != undefined && match[2] != undefined){
43 function getAttributeValue(xmlStr,attribute){
46 var myRe = new RegExp(attribute + "=['\"](.*)['\"] ","m");
47 var myArray = myRe.exec(xmlStr);
48 if(myArray != null && myArray[1] != null){
57 function processNodes(){
58 var nodes = getJSON();
61 nodes.forEach( function(node) {
62 if( node.xml != null && node.xml.indexOf("<service-logic") != -1){
63 //console.log(node.xml);
66 module=getAttributeValue(node.xml,"module");
68 var myRe = new RegExp("module=\"(.*)\" ", "m");
69 var myArray = myRe.exec(node.xml);
70 if(myArray != null && myArray[1] != null){
73 myRe = new RegExp("version=\"(.*)\">", "m");
74 myArray = myRe.exec(node.xml);
75 if(myArray != null && myArray[1] != null){
77 //console.dir(myArray);
80 version=getAttributeValue(node.xml,"version");
81 node.type="service-logic";
82 //node.category="DGEmain";
85 if(module != null && version != null){
86 node.name=module+ "_" + version;
88 console.log("module=" + module);
89 console.log("version=" + version);
90 }else if( node.xml != null && node.xml.indexOf("<method") != -1){
91 var rpc=getAttributeValue(node.xml,"rpc");
96 }else if( node.xml != null && node.xml.indexOf("<outcome") != -1){
97 var uxml = node.xml.toUpperCase();
98 if(uxml.indexOf("FAILURE") != -1){
100 }else if(uxml.indexOf("SUCCESS") != -1){
102 }else if(uxml.indexOf("TRUE") != -1){
103 node.type="outcomeTrue";
104 }else if(uxml.indexOf("FALSE") != -1){
105 node.type="outcomeFalse";
106 }else if(uxml.indexOf("ALREADY-ACTIVE") != -1){
107 node.type="already-active";
108 }else if(uxml.indexOf("NOT-FOUND") != -1){
109 node.type="not-found";
113 }else if( node.xml != null && node.xml.indexOf("<return") != -1){
114 var uxml = node.xml.toUpperCase();
115 if(uxml.indexOf("FAILURE") != -1){
116 node.type="returnFailure";
117 }else if(uxml.indexOf("SUCCESS") != -1){
118 node.type="returnSuccess";
120 }else if( node.xml != null && node.xml.indexOf("<exists") != -1){
122 }else if( node.xml != null && node.xml.indexOf("<block") != -1){
124 var atomic=getAttributeValue(node.xml,"atomic");
128 node.name="block : atomic";
133 }else if( node.xml != null && node.xml.indexOf("<save") != -1){
135 }else if( node.xml != null && node.xml.indexOf("<switch") != -1){
136 node.type="switchNode";
137 }else if( node.xml != null && node.xml.indexOf("<record") != -1){
139 }else if( node.xml != null && node.xml.indexOf("<call") != -1){
141 }else if( node.xml != null && node.xml.indexOf("<release") != -1){
143 }else if( node.xml != null && node.xml.indexOf("<set") != -1){
145 }else if( node.xml != null && node.xml.indexOf("<for") != -1){
147 }else if( node.xml != null && node.xml.indexOf("<is-available") != -1){
148 node.type="is-available";
149 }else if( node.xml != null && node.xml.indexOf("<reserve") != -1){
151 }else if( node.xml != null && node.xml.indexOf("<get-resource") != -1){
152 node.type="get-resource";
153 }else if( node.xml != null && node.xml.indexOf("<configure") != -1){
154 node.type="configure";
155 }else if( node.xml != null && node.xml.indexOf("<delete") != -1){
157 }else if( node.xml != null && node.xml.indexOf("<execute") != -1){
163 var moduleName = "service-logic";
164 var methodName = "method";
165 for(var i=0;nodes != null && i<nodes.length;i++){
166 if(nodes[i].type == "service-logic"){
167 moduleName = nodes[i].name;
169 if(nodes[i].type == "method"){
170 methodName = nodes[i].name;
173 var fName = moduleName + "_" + methodName + ".json";
174 fName = fName.replace(/\s/g, "_");
176 var newFilename = process.argv[3];
177 var filename = newFilename + "/" + fName;
178 console.log("filename" + filename);
179 fs.writeFileSync(filename, JSON.stringify(nodes,null,4));