mecha10-cli 0.6.5

Mecha10 CLI tool
Documentation
//! Init command arguments

use clap::Args;

/// Initialize a new robot project
#[derive(Args, Debug)]
pub struct InitArgs {
    /// Project name (if not provided, will prompt interactively)
    pub name: Option<String>,

    /// Template to use (basic, rover, arm, humanoid). If not provided, will prompt interactively
    #[arg(short, long)]
    pub template: Option<String>,

    /// Skip simulation generation
    #[arg(long)]
    pub skip_sim: bool,

    /// Skip adding example nodes (speaker, listener) to the project
    #[arg(long)]
    pub no_examples: bool,

    /// Skip interactive wizard and use defaults/provided arguments
    #[arg(long)]
    pub non_interactive: bool,

    /// Hardware platform your robot runs on: a target triple (e.g.
    /// "aarch64-unknown-linux-gnu") or a platform label (e.g. "Raspberry Pi 4/5",
    /// case-insensitive). Only used in non-interactive mode - the interactive wizard prompts for
    /// this instead. Defaults to Raspberry Pi 4/5 (aarch64-unknown-linux-gnu) if omitted.
    #[arg(long)]
    pub robot_platform: Option<String>,

    /// Comma-separated list of hardware platforms the "remote" target builds for: target
    /// triples (e.g. "x86_64-unknown-linux-gnu") or platform labels (e.g. "Generic 64-bit Linux
    /// (x86_64)"), case-insensitive. Only used in non-interactive mode - the interactive wizard
    /// prompts for this instead. Defaults to Generic 64-bit Linux (x86_64-unknown-linux-gnu) if
    /// omitted.
    #[arg(long)]
    pub remote_platform: Option<String>,

    /// Update existing project: sync missing node configs without recreating files
    #[arg(long)]
    pub update: bool,
}