torrust-actix 4.2.3

A rich, fast and efficient Bittorrent Tracker.
use clap::Parser;

#[derive(Debug, Parser)]
#[command(author, version, about, long_about = None)]
pub struct Cli {
    #[arg(long)]
    pub create_config: bool,
    
    #[arg(long)]
    pub create_database: bool,
    
    #[arg(long)]
    pub create_selfsigned: bool,
    
    #[arg(long, requires("create_selfsigned"), default_value = "localhost")]
    pub selfsigned_domain: String,
    
    #[arg(long, requires("create_selfsigned"), default_value = "key.pem")]
    pub selfsigned_keyfile: String,
    
    #[arg(long, requires("create_selfsigned"), default_value = "cert.pem")]
    pub selfsigned_certfile: String,

    #[arg(long)]
    pub export: bool,
    
    #[arg(long, requires("export"), default_value = "torrents.json")]
    pub export_file_torrents: String,
    
    #[arg(long, requires("export"), default_value = "whitelists.json")]
    pub export_file_whitelists: String,
    
    #[arg(long, requires("export"), default_value = "blacklists.json")]
    pub export_file_blacklists: String,
    
    #[arg(long, requires("export"), default_value = "keys.json")]
    pub export_file_keys: String,
    
    #[arg(long, requires("export"), default_value = "users.json")]
    pub export_file_users: String,

    #[arg(long)]
    pub import: bool,
    
    #[arg(long, requires("export"), default_value = "torrents.json")]
    pub import_file_torrents: String,
    
    #[arg(long, requires("export"), default_value = "whitelists.json")]
    pub import_file_whitelists: String,
    
    #[arg(long, requires("export"), default_value = "blacklists.json")]
    pub import_file_blacklists: String,
    
    #[arg(long, requires("export"), default_value = "keys.json")]
    pub import_file_keys: String,
    
    #[arg(long, requires("export"), default_value = "users.json")]
    pub import_file_users: String,
}