use clap::{Parser, Subcommand};
use clap_verbosity_flag::Verbosity;
#[derive(Parser)]
#[command(author, version, about, long_about = None)]
pub struct Cli {
#[clap(flatten)]
pub verbose: Verbosity,
#[command(subcommand)]
pub command: CliCommands,
}
#[derive(Subcommand)]
pub enum CliCommands {
Script {
#[arg(short)]
category: Option<String>,
#[command(subcommand)]
command: ScriptCommands,
},
Reconcile {
#[command(subcommand)]
command: ReconcileCommands,
},
Internal {
#[command(subcommand)]
command: InternalCommands,
},
}
#[derive(Subcommand)]
pub enum ScriptCommands {
List {},
View { glob: Option<String> },
Edit { glob: Option<String> },
Run {
#[arg(long)]
sudo: bool,
glob: Option<String>,
},
}
#[derive(Subcommand)]
pub enum ReconcileCommands {
Status {},
Deploy {},
Undeploy {},
}
#[derive(Subcommand)]
pub enum InternalCommands {
StartWatcher {},
FindMan { command_line: String },
Generate {},
}