use clap::{Args, Subcommand, ValueEnum};
#[derive(Args, Debug)]
pub struct InfraCommand {
#[command(subcommand)]
pub infra_subcommand: Option<InfraSubCommands>,
}
#[derive(Subcommand, Debug)]
pub enum InfraSubCommands {
Run(InfraRunArgs),
ListHosts,
}
#[derive(Args, Debug)]
pub struct InfraRunArgs {
#[arg(long, hide_possible_values = true)]
pub host: Hosts,
#[arg(
long,
required_if_eq("host", "trinity-heliolens"),
hide_possible_values = true
)]
pub extra_flag: Option<SetupExtraFlags>,
}
#[derive(ValueEnum, Copy, Clone, Debug, PartialEq, Eq)]
pub enum Hosts {
TrinityHeliolens,
TrinityInfinity,
}
#[derive(ValueEnum, Copy, Clone, Debug, PartialEq, Eq)]
pub enum SetupExtraFlags {
PartOne,
PartTwo,
}