file-tree-creator
v1.2.6
Published
Secure file/folder structure generator with support for both tree diagrams and flat paths. Perfect for project scaffolding and boilerplate generation.
Maintainers
Readme
File Tree Creator 🌳📂
A powerful CLI tool and library to generate file and folder structures from both tree diagrams and flat path lists. Perfect for quickly scaffolding projects or creating complex directory structures with a single command.
Features ✨
- Dual Input Modes: Supports both tree diagrams (
│ ├── └──) and flat path lists - Smart Parsing: Handles comments (lines starting with
#) and validates paths - Safe Operations: Skips existing files and validates path characters
- Recursive Creation: Automatically creates all necessary parent directories
- CLI & Programmable: Use via command line or import as a library
Installation 💿
Global Install (recommended for CLI usage)
npm install -g file-tree-creatorLocal Project Install
npm install file-tree-creator --save-devUsage 🚀
CLI Usage
ftc <input-file> [--mode=tree|flat]or
npx file-tree-creator <input-file> [--mode=tree|flat]Examples:
- From a tree diagram:
ftc structure.txt
# or explicitly
ftc structure.txt --mode=tree- From flat paths:
ftc paths.txt --mode=flatProgrammatic Usage
const { parseTreeDiagram, parseFlatPath, createFileStructure } = require('file-tree-creator');
// Using tree diagram
const treeInput = `
├── src
│ ├── index.js
│ └── utils
│ └── helper.js
`;
const paths = parseTreeDiagram(treeInput);
createFileStructure(paths, './my-project');
// Using flat paths
const flatInput = `
src/index.js
src/utils/helper.js
README.md
`;
const flatPaths = parseFlatPath(flatInput);
createFileStructure(flatPaths, './my-project');Input Formats 📝
Tree Diagram Format
├── src
│ ├── index.js
│ └── utils
│ └── helper.js
├── README.md
└── .gitignoreFlat Path Format
src/index.js
src/utils/helper.js
README.md
.gitignoreComments
Both formats support comments (lines starting with #):
# This is a comment
src/index.js # This part will be parsed
# Another commentAPI Reference 📚
parseTreeDiagram(treeText)
Parses a tree diagram string into an array of paths.
Parameters:
treeText(String): The tree diagram text
Returns:
- Array of path strings
parseFlatPath(flatText)
Parses a flat path list into an array of paths.
Parameters:
flatText(String): The flat path text
Returns:
- Array of path strings
createFileStructure(paths, baseDir = process.cwd())
Creates the file structure from an array of paths.
Parameters:
paths(Array): Array of path stringsbaseDir(String): Base directory to create structure in (defaults to current directory)
Strict vs Lenient Modes
By default, the tool runs in lenient mode:
- Continues after errors
- Shows warnings for invalid paths
- Returns exit code 0 unless catastrophic failure occurs
Use --strict flag for strict mode:
- Fails immediately on first error
- Returns exit code 1 if any errors occur
- Recommended for CI/CD environments
Examples:
# Lenient mode (default)
ftc paths.txt
# Strict mode
ftc paths.txt --strictError Handling 🛑
The tool handles several error cases gracefully:
- Skips existing files/folders with warning
- Rejects paths with invalid characters (
<>:"|?*) - Rejects paths with double slashes (
//) - Provides clear error messages for file system operations
Examples 🏗️
See the examples/ directory for sample input files:
tree.txt: Tree diagram exampleflat.txt: Flat path example
Contributing 🤝
Contributions are welcome! Please open an issue or PR for any:
- Bug reports
- Feature requests
- Documentation improvements
- Test cases
License 📄
MIT © Festus Charles
Enjoy creating file structures with ease! 🎯
