folder-generator
v3.0.2
Published
CLI tool to generate folder structures from text input
Maintainers
Readme
📁 Folder Structure Generator CLI
A powerful CLI tool that generates complete folder structures from simple text diagrams. Perfect for quickly scaffolding projects, boilerplates, or standardized directory layouts.
✨ Features
- Generate nested folders and files with a single command
- Supports both direct input and file input
- Cross-platform (Windows, macOS, Linux)
- Clear visual feedback with color-coded output
- Flexible output directory specification
- Lightweight with minimal dependencies
📦 Installation
Global Installation (Recommended)
npm install -g folder-generatorLocal Installation
npm install folder-generator --save-dev🚀 Usage
From Direct Input
foldgen --input "src/
├── App.js
├── index.js
└── components/
├── Button.js
└── Header.js"Using npx
npx folder-generator --file structure.txtFrom File
foldgen --file structure.txtFrom STDIN (Piping)
echo "config/
├── default.json
└── production.json" | foldgenSpecify Output Directory
foldgen --file structure.txt --output ./my-project📝 Syntax Guide
The generator understands standard tree diagram notation:
project/
├── README.md
├── src/
│ ├── index.js
│ └── utils/
│ └── helpers.js
└── tests/
└── index.test.jsSpecial Characters:
├──for intermediate items└──for the last item in a level│for vertical connections- Spaces for indentation (4 spaces per level)
🛠️ Programmatic API
const { parseStructure, createFiles } = require('folder-generator');
const structure = parseStructure(`src/index.js`);
createFiles(structure, './output');📂 Example Structure Files
React Project (react-structure.txt):
src/
├── App.jsx
├── index.js
├── components/
│ ├── Button/
│ │ ├── index.jsx
│ │ └── styles.module.css
│ └── Header.jsx
├── pages/
│ └── Home.jsx
└── utils/
└── api.jsNode.js API (node-structure.txt):
app/
├── config/
│ └── database.js
├── controllers/
│ └── userController.js
├── models/
│ └── User.js
├── routes/
│ └── api.js
├── app.js
└── package.json🤝 Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📜 License
MIT © Shreyash Ghanekar
🙏 Acknowledgments
- Inspired by the need for quick project scaffolding
- Built with Node.js and love
