decdn-common 0.1.0

Shared types for deCDN binaries: config schema, identity, CLI args
Documentation
//! Arguments for the `decdn key-gen` subcommand.

use std::path::PathBuf;

use clap::Args;

/// Generate a new Ed25519 node key and Ethereum keystore.
#[derive(Args, Debug)]
pub struct KeyGenArgs {
    /// Output directory for generated keys [default: ~/.decdn].
    #[arg(long, value_name = "DIR")]
    pub output_dir: Option<PathBuf>,

    /// Overwrite existing keys if present.
    #[arg(long)]
    pub force: bool,

    /// File whose contents are the keystore password. Consulted after the
    /// `DECDN_KEYSTORE_PASSWORD` env var and before an interactive prompt on a
    /// TTY. A single trailing newline is stripped; a file that is empty after
    /// that strip is a deliberate empty password, not an absent source. A path
    /// that does not exist falls through; one that exists but cannot be read is
    /// an error.
    #[arg(long, value_name = "PATH", env = "DECDN_KEYSTORE_PASSWORD_FILE")]
    pub keystore_password_file: Option<PathBuf>,
}