feat: Add template system to weevil new command
Implements template-based project creation allowing teams to start with
professional example code instead of empty projects.
Features:
- Two templates: 'basic' (minimal) and 'testing' (45-test showcase)
- Template variable substitution ({{PROJECT_NAME}}, etc.)
- Template validation with helpful error messages
- `weevil new --list-templates` command
- Template files embedded in binary at compile time
Technical details:
- Templates stored in templates/basic/ and templates/testing/
- Files ending in .template have variables replaced
- Uses include_dir! macro to embed templates in binary
- Returns file count for user feedback
Testing template includes:
- 3 complete subsystems (MotorCycler, WallApproach, TurnController)
- Hardware abstraction layer with mock implementations
- 45 comprehensive tests (unit, integration, system)
- Professional documentation (DESIGN_AND_TEST_PLAN.md, etc.)
Usage:
weevil new my-robot # basic template
weevil new my-robot --template testing # testing showcase
weevil new --list-templates # show available templates
This enables FTC teams to learn from working code and best practices
rather than starting from scratch.
This commit is contained in:
11
templates/basic/.weevil.toml.template
Normal file
11
templates/basic/.weevil.toml.template
Normal file
@@ -0,0 +1,11 @@
|
||||
[project]
|
||||
name = "{{PROJECT_NAME}}"
|
||||
created = "{{CREATION_DATE}}"
|
||||
weevil_version = "{{WEEVIL_VERSION}}"
|
||||
template = "{{TEMPLATE_NAME}}"
|
||||
|
||||
[ftc]
|
||||
sdk_version = "10.1.1"
|
||||
|
||||
[build]
|
||||
gradle_version = "8.5"
|
||||
Reference in New Issue
Block a user