use clap::{Parser, Subcommand};
#[derive(Debug, Parser)]
#[command(name = "parlov", version, about, long_about = None)]
pub struct Cli {
#[command(subcommand)]
pub command: Command,
}
#[derive(Debug, Subcommand)]
pub enum Command {
Existence(ExistenceArgs),
Scan(ScanArgs),
}
#[derive(Debug, clap::Args)]
pub struct ExistenceArgs {
#[arg(long)]
pub target: String,
#[arg(long)]
pub baseline_id: String,
#[arg(long)]
pub probe_id: Option<String>,
#[arg(long = "header", value_name = "HEADER")]
pub headers: Vec<String>,
#[arg(long, default_value = "GET")]
pub method: String,
#[arg(long)]
pub body: Option<String>,
}
#[derive(Debug, clap::Args)]
pub struct ScanArgs {
#[arg(long)]
pub target: String,
#[arg(long)]
pub baseline_id: String,
#[arg(long)]
pub probe_id: Option<String>,
#[arg(long, default_value = "safe")]
pub risk: String,
#[arg(long = "header", value_name = "HEADER")]
pub headers: Vec<String>,
#[arg(long = "alt-credential", value_name = "HEADER")]
pub alt_credential: Option<String>,
#[arg(long)]
pub known_duplicate: Option<String>,
#[arg(long)]
pub state_field: Option<String>,
}