Files
weevil/templates
Eric Ratliff 60679e097f 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.
2026-02-02 22:31:08 -06:00
..

{{ project_name }}

FTC Robot Project generated by Weevil v{{ generator_version }}

Project Structure

{{ project_name }}/
├── src/
│   ├── main/java/robot/
│   │   ├── subsystems/      # Robot subsystems (drivetrain, intake, etc.)
│   │   ├── hardware/        # Hardware abstraction layer
│   │   └── opmodes/         # TeleOp and Autonomous programs
│   └── test/java/robot/     # Unit tests
├── build.gradle.kts         # Build configuration
└── settings.gradle.kts      # Links to FTC SDK

Getting Started

Run Tests

./gradlew test

Build Project

./gradlew build

Deploy to Robot

weevil deploy {{ project_name }}

FTC SDK

This project uses FTC SDK located at:

{{ sdk_dir }}

Development

  1. Write your robot code in src/main/java/robot/
  2. Write tests in src/test/java/robot/
  3. Run tests frequently: ./gradlew test
  4. Deploy when ready: weevil deploy

Resources


Generated by Weevil v{{ generator_version }} | Nexus Workshops LLC