A convenient project template management tool to quickly clone templates from Git repositories.
- ✅ 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
cargo install --path .git clone https://github.com/your-repo/project-template.git
cd project-template
cargo build --releasetemplate-cli [options]# 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 | 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 | - |
-
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--originalparameter 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.jsonCategory: 1. Frontend Projects 2. Backend Projects Select a category (default: Frontend Projects):
- 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.
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-cacheQ: Supported template repository structure?
<repository>/
├── template1/
├── template2/
└── .gitignore
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
- Fork this repository.
- Create a feature branch:
git checkout -b feature/X. - Implement the feature and test it.
- Create a Pull Request.