use clap::{Parser, Subcommand, ValueEnum};
#[derive(Parser)]
#[command(name = "kql-panopticon")]
#[command(version, about = "Execute KQL queries across Azure Log Analytics workspaces")]
pub struct Cli {
#[command(subcommand)]
pub command: Option<Commands>,
}
#[derive(Subcommand)]
pub enum Commands {
Tui,
RunPack {
pack: String,
#[arg(short, long)]
workspaces: Option<String>,
#[arg(short = 'f', long, value_enum, default_value = "files")]
format: OutputFormat,
#[arg(long)]
json: bool,
#[arg(long)]
validate_only: bool,
},
ExportPack {
session: String,
#[arg(short, long)]
output: Option<std::path::PathBuf>,
#[arg(short = 'f', long, value_enum, default_value = "yaml")]
format: PackFormat,
},
}
#[derive(ValueEnum, Clone)]
pub enum OutputFormat {
Files,
Stdout,
}
#[derive(ValueEnum, Clone)]
pub enum PackFormat {
Yaml,
Json,
}