Create directory and file architecture from a tree structure text file
Project description
๐๏ธ mkarchi
mkarchi (make architecture) is a command-line tool that generates complete project structures from simple tree-format text files.
Define your entire project architecture โ folders, files, and even file contents โ in one readable text file, then generate it instantly with a single command.
โจ Features
- ๐ Create directories from a tree structure
- ๐ Create empty files automatically
- โ๏ธ Create files with content using intuitive
(begincontenu)/(endcontenu)syntax - ๐ฏ Preserve indentation (perfect for Python, YAML, JSON, etc.)
- ๐ฌ Support comments in structure files
- ๐ Fast & simple โ build your whole project in one command
๐ฆ Installation
โ Recommended (via pip)
pip install mkarchi
Option 2: Install from source
git clone https://github.com/yourusername/mkarchi.git
cd mkarchi
pip install -e .
Option 3: Run as module (no installation)
git clone https://github.com/yourusername/mkarchi.git
cd mkarchi
python -m mkarchi apply structure.txt
๐ Quick Start
1๏ธโฃ Create a structure file
Create a file called structure.txt:
my_project/
โโโ src/
โ โโโ main.py(begincontenu)
โ โ def main():
โ โ print("Hello, World!")
โ โ
โ โ if __name__ == "__main__":
โ โ main()
โ (endcontenu)
โ โโโ utils.py(begincontenu)
โ def helper():
โ return "Helper function"
โ (endcontenu)
โโโ tests/
โ โโโ test_main.py
โโโ README.md(begincontenu)
โ # My Project
โ
โ This is an awesome project!
โ (endcontenu)
โโโ requirements.txt(begincontenu)
pytest>=7.0.0
requests>=2.28.0
(endcontenu)
2๏ธโฃ Run mkarchi
mkarchi apply structure.txt
3๏ธโฃ See the magic โจ
๐ Creating structure from structure.txt...
๐ Created directory: my_project
๐ Created directory: my_project/src
๐ Created file with content: my_project/src/main.py
๐ Created file with content: my_project/src/utils.py
๐ Created directory: my_project/tests
๐ Created file: my_project/tests/test_main.py
๐ Created file with content: my_project/README.md
๐ Created file with content: my_project/requirements.txt
โ
Architecture created successfully!
๐ Usage
# Generate structure
mkarchi apply structure.txt
# Help
mkarchi --help
# Version
mkarchi --version
๐ Structure File Format
๐ Create Directories
Directories must end with /:
my_folder/
โโโ subfolder/
โโโ another_folder/
๐ Create Empty Files
Files without (begincontenu) / (endcontenu) are created empty:
my_folder/
โโโ empty_file.txt
โโโ config.json
โ๏ธ Create Files with Content
Use (begincontenu) and (endcontenu) to define file content:
script.py(begincontenu)
print("Hello!")
print("This is Python code")
(endcontenu)
๐ฏ Indentation Preservation
mkarchi automatically preserves indentation:
utils.py(begincontenu)
def greet(name):
if name:
print(f"Hello, {name}!")
else:
print("Hello, World!")
(endcontenu)
Result (utils.py):
def greet(name):
if name:
print(f"Hello, {name}!")
else:
print("Hello, World!")
๐ฌ Comments Support
Use # for comments in your structure file:
project/
โโโ src/ # Source code
โ โโโ main.py # Entry point
โโโ tests/ # Tests
๐ฏ Use Cases
โก Quick Prototyping
๐ฆ Reusable project templates
๐ Documentation & tutorials
๐งฉ Microservices setup
mkarchi apply service1.txt
mkarchi apply service2.txt
๐ง Advanced Example (Python Project)
python_project/
โโโ src/
โ โโโ __init__.py
โ โโโ main.py(begincontenu)
โ """Main module."""
โ
โ def main():
โ print("Starting application...")
โ (endcontenu)
โโโ tests/
โ โโโ __init__.py
โ โโโ test_main.py(begincontenu)
โ import pytest
โ from src.main import main
โ
โ def test_main():
โ assert main() is None
โ (endcontenu)
โโโ setup.py(begincontenu)
โ from setuptools import setup, find_packages
โ
โ setup(
โ name="my-project",
โ version="0.1.0",
โ packages=find_packages(),
โ )
โ (endcontenu)
โโโ README.md
๐ค Contributing
Contributions are welcome! ๐
Fork the repository
Create a feature branch:
git checkout -b feature/amazing-feature
Commit your changes:
git commit -m "Add amazing feature"
Push to your branch:
git push origin feature/amazing-feature
Open a Pull Request
๐ License
This project is licensed under the MIT License. See the LICENSE file for details.
๐ Issues & Feedback
Found a bug or have a feature request? Please open an issue on GitHub Issues.
โญ Support the Project
If you find mkarchi useful, please consider giving it a โญ on GitHub!
โค๏ธ Made with passion by Soufyan Rachdi
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mkarchi-0.1.4.tar.gz.
File metadata
- Download URL: mkarchi-0.1.4.tar.gz
- Upload date:
- Size: 6.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96d1714cf1df8d775211e524ba4f1592149c9fdf0693f831c546cb1a71bca25d
|
|
| MD5 |
a283683bb333a745d5fee4d8b5d1ad0f
|
|
| BLAKE2b-256 |
9fb3ff18c851d5d362bdb7af94c20b5789f8c1d459ef6f3e1c8150b91cbc747e
|
File details
Details for the file mkarchi-0.1.4-py3-none-any.whl.
File metadata
- Download URL: mkarchi-0.1.4-py3-none-any.whl
- Upload date:
- Size: 7.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9e50fbc1b88d4ee7616756302556cc07cff27e223c56669a05edb44dce42c43
|
|
| MD5 |
c507461b10cdd20fa8de68ce45fedf28
|
|
| BLAKE2b-256 |
c89b389e0e94fa0d09eea6a57e7055d7c6330c1f82e969d465eaec55b89dc2fd
|