use clap::{Parser, Subcommand};
pub mod device;
pub mod display;
pub mod project;
#[derive(Parser)]
#[command(version)]
#[command(name = "PrustIO")]
#[command(about = "A project manager for Rust embedded projects.", long_about = None)]
pub struct Cli {
#[command(subcommand)]
pub(crate) command: TopLevelCommands,
}
#[derive(Subcommand)]
pub enum TopLevelCommands {
Boards {
filter: Option<String>,
#[arg(long)]
json_output: bool,
},
Device {
#[command(subcommand)]
command: device::DeviceCommands,
},
Project {
#[command(subcommand)]
command: project::ProjectCommands,
},
Run {
#[arg(short, long)]
target: Option<String>,
#[arg(short, long)]
environment: Option<String>,
#[arg(long)]
json_output: bool,
},
Activate {
environment: String,
#[arg(long)]
json_output: bool,
},
Refresh {
#[arg(long)]
json_output: bool,
},
Clean {
#[arg(long)]
json_output: bool,
},
}