#[derive(Debug, Clone, clap::Subcommand)]
pub enum StandardCommand {
Run,
Version,
#[command(name = "config-check")]
ConfigCheck,
#[command(name = "metrics-manifest")]
MetricsManifest,
#[command(name = "generate-artefacts")]
GenerateArtefacts(GenerateArtefactsArgs),
#[cfg(feature = "top")]
Top(TopArgs),
}
#[derive(Debug, Clone, clap::Args)]
pub struct GenerateArtefactsArgs {
#[arg(long = "output-dir", default_value = "docs")]
pub output_dir: String,
}
#[cfg(feature = "top")]
#[derive(Debug, Clone, clap::Args)]
pub struct TopArgs {
#[arg(
long = "metrics-url",
env = "METRICS_URL",
default_value = "http://127.0.0.1:9090/metrics"
)]
pub metrics_url: String,
#[arg(long = "interval", default_value = "2")]
pub interval: u64,
#[arg(long = "once")]
pub once: bool,
#[arg(long = "json")]
pub json: bool,
#[arg(long = "filter", short = 'f')]
pub filter: Option<String>,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_standard_command_variants() {
let _ = StandardCommand::Run;
let _ = StandardCommand::Version;
let _ = StandardCommand::ConfigCheck;
}
}