clap Derive API
use clap::{Parser, Subcommand};
#[derive(Parser)]
#[command(name = "pki", about = "Toy PKI for learning")]
struct Cli {
#[arg(long, default_value = "./pki")]
dir: PathBuf,
#[command(subcommand)]
command: Commands,
}
#[derive(Subcommand)]
enum Commands {
Init,
Issue {
#[command(subcommand)]
cert_type: IssueType,
},
Revoke {
serial: String,
#[arg(long, default_value = "unspecified")]
reason: String,
},
Inspect { path: PathBuf },
List,
ServeOcsp {
#[arg(long, default_value_t = 8080)]
port: u16,
},
}