mecha10-cli 0.7.0

Mecha10 CLI tool
Documentation
//! Config command arguments
//!
//! Commands for managing robot configurations independently of binary uploads.

use clap::{Args, Subcommand};
use std::path::PathBuf;

#[derive(Subcommand)]
pub enum ConfigCommand {
    Push(#[command(flatten)] ConfigPushArgs),

    Pull(#[command(flatten)] ConfigPullArgs),

    List(#[command(flatten)] ConfigListArgs),

    Show,

    Validate(#[command(flatten)] ConfigValidateArgs),

    Edit,

    Sync,
}

#[derive(Args)]
pub struct ConfigValidateArgs {
    #[arg(long)]
    pub path: Option<PathBuf>,
}

#[derive(Args)]
pub struct ConfigPushArgs {
    #[arg(short, long)]
    pub path: Option<PathBuf>,

    #[arg(short, long)]
    pub robot_id: Option<String>,

    #[arg(long)]
    pub dry_run: bool,
}

#[derive(Args)]
pub struct ConfigPullArgs {
    #[arg(short, long)]
    pub output: Option<PathBuf>,

    #[arg(short, long)]
    pub robot_id: Option<String>,

    #[arg(long)]
    pub force: bool,
}

#[derive(Args)]
pub struct ConfigListArgs {
    #[arg(short, long)]
    pub robot_id: Option<String>,

    #[arg(short, long)]
    pub verbose: bool,
}