const fs = require("fs");
const path = require("path");
function generateFileTree(filePath, depth) {
const stats = fs.statSync(filePath);
if (
!stats.isDirectory() ||
path.basename(filePath).startsWith(".") ||
path.basename(filePath) === "node_modules"
) {
return "";
}
const folderName = path.basename(filePath);
const prefix = depth === 0 ? "|--" : "--".repeat(depth) + "|--";
let fileTree = `${prefix}${folderName}\n`;
fs.readdirSync(filePath)
.map((file) => path.join(filePath, file))
.filter((file) => fs.statSync(file).isDirectory())
.sort()
.forEach((file) => {
fileTree += generateFileTree(file, depth + 1);
});
return fileTree;
}
const directory = path.dirname(__filename);
const fileTree = generateFileTree(directory, 0);
fs.writeFile("readme.md", fileTree, (err) => {
if (err) {
console.error("Error writing file:", err);
} else {
console.log("File created: readme.md");
}
});
const fs = require("fs");
const path = require("path");
function generateFileTree(filePath, depth) {
const stats = fs.statSync(filePath);
if (stats.isDirectory()) {
const files = fs.readdirSync(filePath).sort(); // 파일 및 폴더 정렬
let fileTree = "";
files.forEach((file) => {
const fileIndexPath = path.join(filePath, file);
const isDirectory = fs.statSync(fileIndexPath).isDirectory();
const prefix = isDirectory ? "| - " : "| ";
fileTree += `${"| ".repeat(depth)}${prefix}${file}\n`;
if (isDirectory) {
fileTree += generateFileTree(fileIndexPath, depth + 1);
}
});
return fileTree;
}
return ""; // 불필요한 return 문 제거
}
const directory = path.dirname(__filename);
const fileTree = `${path.basename(directory)}\n${generateFileTree(
directory,
0
)}`;
// Replace multiple occurrences of '| ' with '|-- '
const formattedFileTree = fileTree.replace(/(\| )+/g, (match) =>
match.replace(/\| /g, "|-- ")
);
fs.writeFile("readme.md", formattedFileTree, (err) => {
if (err) {
console.error("Error writing file:", err);
} else {
console.log("File created: readme.md");
}
});
css
| - button
|-- |-- button.css
|-- common.css
| - form
|-- |-- form.css
|-- generate-css-readme.js
|-- layouts.css
| - pages
|-- reset.css
|-- root.css
| - text
|-- |-- text.css