mirror of
https://github.com/kamranahmedse/developer-roadmap.git
synced 2025-01-17 14:18:17 +01:00
45 lines
1.0 KiB
JavaScript
45 lines
1.0 KiB
JavaScript
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));
|