const fs = require('fs'); const path = require('path'); const roadmapId = process.argv[2]; if (!roadmapId) { console.error('Error: roadmapId is required'); } const fullPath = path.join(__dirname, `../src/data/roadmaps/${roadmapId}`); if (!fs.existsSync(fullPath)) { console.error(`Error: path not found: ${fullPath}!`); process.exit(1); } function readFiles(folderPath) { const stats = fs.lstatSync(folderPath); if (stats.isFile()) { return [folderPath]; } const folderContent = fs.readdirSync(folderPath); let files = []; for (const file of folderContent) { const filePath = path.join(folderPath, file); files = [...files, ...readFiles(filePath)]; } return files; } const files = readFiles(fullPath); let allLinks = []; files.forEach((file) => { const fileContent = fs.readFileSync(file, 'utf-8'); const matches = [...fileContent.matchAll(/\[[^\]]+]\((https?:\/\/[^)]+)\)/g)]; allLinks = [...allLinks, ...matches.map((match) => match[1])]; }); allLinks.map((link) => console.log(link));