signstar_request_signature/
cli.rs

1//! Command line interface.
2
3use std::path::PathBuf;
4
5use clap::Parser;
6
7/// Command line arguments for signing.
8#[derive(Debug, Parser)]
9pub enum Cli {
10    /// Prepare signing request for a file.
11    Prepare(PrepareCommand),
12
13    /// Send signing request over SSH.
14    Send(SendCommand),
15}
16
17/// Signing request input parameters.
18#[derive(Debug, Parser)]
19pub struct PrepareCommand {
20    /// The path to a file being signed
21    #[arg(env = "SIGNSTAR_REQUEST_FILE")]
22    pub input: PathBuf,
23}
24
25/// Sending signing request input parameters.
26#[derive(Debug, Parser)]
27pub struct SendCommand {
28    /// Signstar host.
29    #[arg(long)]
30    pub host: String,
31
32    /// Signstar port.
33    #[clap(default_value_t = 22)]
34    #[arg(long)]
35    pub port: u16,
36
37    /// Signstar user.
38    #[arg(long)]
39    pub user: String,
40
41    /// Path to the agent socket used for user authentication.
42    #[arg(long)]
43    pub agent_socket: PathBuf,
44
45    /// Public key of a user.
46    #[arg(long)]
47    pub user_public_key: String,
48
49    /// Path of a known hosts file which contains public keys of the serevr.
50    #[arg(long)]
51    pub known_hosts: PathBuf,
52
53    /// The path to a file being signed
54    #[arg(env = "SIGNSTAR_REQUEST_FILE")]
55    pub input: PathBuf,
56}