cli.rs (1065B)
1 use clap::Parser; 2 use radroots_runtime::RadrootsServiceCliArgs; 3 use std::path::PathBuf; 4 5 #[derive(Parser, Debug, Clone)] 6 #[command( 7 about = env!("CARGO_PKG_DESCRIPTION"), 8 author = env!("CARGO_PKG_AUTHORS"), 9 version = env!("CARGO_PKG_VERSION") 10 )] 11 pub struct Args { 12 #[command(subcommand)] 13 pub command: Option<Command>, 14 #[command(flatten)] 15 pub service: RadrootsServiceCliArgs, 16 } 17 18 #[derive(clap::Subcommand, Debug, Clone)] 19 pub enum Command { 20 #[command( 21 name = "proof-smoke", 22 about = "Run a provider-neutral proof smoke request" 23 )] 24 ProofSmoke { 25 #[arg(long)] 26 input: Option<PathBuf>, 27 #[arg(long)] 28 output: Option<PathBuf>, 29 }, 30 #[command( 31 name = "remote-prove", 32 about = "Run a provider-neutral remote proof request" 33 )] 34 RemoteProve { 35 #[arg(long)] 36 input: Option<PathBuf>, 37 #[arg(long)] 38 output: Option<PathBuf>, 39 #[arg(long, default_value = "cpu", value_parser = ["cpu", "cuda"])] 40 proof_engine: String, 41 }, 42 }