extractAll.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. const fs = require('fs');
  2. const path = require('path');
  3. const { promisify } = require('util');
  4. const extract = require('./extract');
  5. const readdirAsync = promisify(fs.readdir);
  6. const readFileAsync = promisify(fs.readFile);
  7. const writeFileAsync = promisify(fs.writeFile);
  8. if (!process.env.MD_PATH) {
  9. console.log('process.env.MD_PATH must be defined');
  10. process.exit(1);
  11. }
  12. const markdownPath = path.join(process.cwd(), process.env.MD_PATH);
  13. async function run(filterFunc) {
  14. const allFiles = await readdirAsync(markdownPath);
  15. const tutoFiles = allFiles.filter(filterFunc);
  16. const promises = tutoFiles.map(async tuto => {
  17. const tutoPath = path.join(markdownPath, tuto);
  18. const buf = await readFileAsync(tutoPath);
  19. const md = buf.toString();
  20. console.log(md.substr(0, 10));
  21. try {
  22. return extract(md);
  23. } catch (err) {
  24. console.log(err.message);
  25. }
  26. });
  27. const tutos = await Promise.all(promises);
  28. const json = JSON.stringify(tutos);
  29. await writeFileAsync('lbac.json', json);
  30. process.exit();
  31. }
  32. const filterFunc = f => f.startsWith('tutor');
  33. run(filterFunc);