generator.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import {StatisticsCollector} from "./StatisticsCollector";
  2. const fs = require('fs').promises;
  3. async function main() {
  4. const args = process.argv.slice(2);
  5. if (args.length != 2) {
  6. console.error('Usage: [start bock number] [end block number]');
  7. process.exit(1);
  8. }
  9. const startBlock = Number(args[0]);
  10. const endBlock = Number(args[1]);
  11. if (isNaN(startBlock) || isNaN(endBlock) || startBlock >= endBlock) {
  12. console.error('Invalid block range');
  13. process.exit(1);
  14. }
  15. try {
  16. let fileData = await fs.readFile(__dirname + '/../report-template.md', {
  17. encoding: "utf8"
  18. });
  19. console.log('Getting report info...');
  20. let staticCollecttor = new StatisticsCollector();
  21. let statistics = await staticCollecttor.getStatistics(startBlock, endBlock);
  22. console.log('Writing info in the report...');
  23. let entries = Object.entries(statistics);
  24. for (let entry of entries){
  25. let regex = new RegExp('{' + entry[0] + '}', "g");
  26. fileData = fileData.replace(regex, entry[1].toString());
  27. }
  28. await fs.writeFile('report.md', fileData);
  29. console.log('Report generated!');
  30. process.exit(0);
  31. }catch (e) {
  32. console.error(e);
  33. }
  34. }
  35. main();