123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- 'use strict';
- const fs = require('fs');
- console.log('starting');
- const inFile = 'WiFiManager.template.html';
- const outFile = 'template.h';
- const defineRegEx = /<!-- ([A-Z_]+) -->/gm;
- console.log('parsing', inFile);
- fs.readFile(inFile, 'utf8', function (err,data) {
- if (err) {
- return console.log(err);
- }
-
- let defines = data.match(defineRegEx);
-
- var stream = fs.createWriteStream(outFile);
- stream.once('open', function(fd) {
- for (const i in defines) {
- const start = defines[i];
- const end = start.replace('<!-- ', '<!-- /')
- defineRegEx.lastIndex = 0;
- const constantName = defineRegEx.exec(start)[1];
- console.log(constantName);
- var extractRE = new RegExp(start + '([\\s\\S]+)' + end, 'gm');
- let extractArray = extractRE.exec(data);
- if(extractArray.length > 1) {
- let def = extractArray[1];
-
-
- def = def.replace(/\s+/g, ' ');
- def = def.replace(/>\s+</g, '><');
- def = def.trim();
-
-
- def = def.replace(/(\w)\s(\W)|(\W)\s(\w)/g, '$1$2$3$4');
-
- def = def.replace(/\\([\s\S])|(")/g, "\\$1$2");
- console.log(def);
-
- let string = 'const char ' + constantName + '[] PROGMEM';
- for (let i = string.length; i < 42; i++) {
- string += ' ';
- }
- string += '= "' + def + '";\n';
- stream.write(string);
- }
- }
- stream.end();
- });
- });
|