5 releases (3 breaking)
0.4.0 | Mar 28, 2025 |
---|---|
0.3.0 | Mar 24, 2025 |
0.2.1 | Mar 24, 2025 |
0.2.0 | Mar 22, 2025 |
0.1.0 | Mar 18, 2025 |
#42 in Template engine
439 downloads per month
26KB
479 lines
Template CLI 🚀
A convenient project template management tool to quickly clone templates from Git repositories.
Features
- ✅ Interactive template selection
- ✅ Flexible configuration via command-line arguments
- ✅ Intelligent cache configuration management
- ✅ Support for branch specification and directory renaming
- ⚡ Support for native JSON project selection mode
Installation
Install via Cargo
cargo install --path .
Manual Build
git clone https://github.com/your-repo/project-template.git
cd project-template
cargo build --release
User Guide
Basic Command Structure
template-cli [options]
Quick Start Examples
# Clone a template project (interactive selection)
template-cli https://github.com/my-repo/templates
# Clone with specified parameters
template-cli -r https://github.com/my-repo -b dev -d ./new-project -t my_template
# View cache configuration
template-cli -x
# Use native project selection mode
template-cli --original https://github.com/my-repo.json
Parameter Description
Parameter | Description | Default Value |
---|---|---|
-r, --repo |
Git repository URL to clone | - |
-b, --branch |
Git branch name | main |
-d, --target-dir |
Target directory for the template | Current directory |
-t, template |
Specific template name to use | Interactive selection |
-o, --original |
Use native JSON configuration source | - |
-c, --clear-cache |
Clear configuration cache | - |
-x, --check-cache |
View saved configuration cache | - |
Advanced Parameters
-
Intelligent Cache:
Automatically saves recently used repository, branch, and other configurations. These will be prioritized on subsequent uses.- View cache:
template-cli -x
- Clear cache:
template-cli -c
- View cache:
-
Native Project Selection Mode:
Use the--original
parameter to specify the JSON configuration file URL. This will display a selection interface like the following: eg:--original https://raw.githubusercontent.com/ryanuo/tmpl-cli/refs/heads/main/.tmpl-cli/data.json
Category: 1. Frontend Projects 2. Backend Projects Select a category (default: Frontend Projects):
Workflow
- User inputs parameters or selects interactive mode.
- Determine the repository information to clone based on parameters/cache.
- Clone the repository from the specified branch to a temporary directory.
- Display the available template list for user selection.
- Copy the selected template to the target path.
- Automatically clean up temporary files and output a success message.
FAQ
Q: Where is the cache stored?
~/.tmpl-cli/{.template_cli_cache.json}
Q: How to completely reset the configuration?
rm -rf ~/.tmpl-cli && template-cli --clear-cache
Q: Supported template repository structure?
<repository>/
├── template1/
├── template2/
└── .gitignore
Developer Guide
Code Structure
src/
├── cache.rs # Cache module
├── cli.rs # Command-line parsing
├── errors.rs # Error handling
├── git.rs # Git operations
├── original.rs # Native mode implementation
├── utils.rs # Utility methods
└── template.rs # Core template processing
Contribution Guide
- Fork this repository.
- Create a feature branch:
git checkout -b feature/X
. - Implement the feature and test it.
- Create a Pull Request.
Dependencies
~17–32MB
~569K SLoC