AI Summary
This AI-generated content is derived from the source article and has been manually verified.
Loading.
Template CLI 🚀 #
A convenient project template management tool for quickly cloning 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
- âš¡ 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
Usage 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 specific 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 dir |
-t, template | Specific template to use | Interactive |
-o, --original | Use native JSON configuration | - |
-c, --clear-cache | Clear configuration cache | - |
-x, --check-cache | View saved configuration cache | - |
Advanced Parameters #
Intelligent Cache: Automatically saves recently used repositories, branches, etc., and prioritizes cache on reuse.
- View cache:
template-cli -x
- Clear cache:
template-cli -c
- View cache:
Native Project Selection Mode: Use the
--original
parameter to specify a JSON configuration file URL, which displays a selection interface like this:Category: 1. Frontend Projects 2. Backend Projects Select a category (default: Frontend Projects):
Workflow #
- User inputs parameters or selects interactive mode.
- Determine repository information based on parameters/cache.
- Clone the repository from the specified branch to a temporary directory.
- Display available templates for user selection.
- Copy the selected template to the target path.
- Automatically clean up temporary files and output 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 handling
Contribution Guide #
- Fork this repository.
- Create a feature branch:
git checkout -b feature/X
. - Implement the feature and test it.
- Create a Pull Request.