use clap::Parser;

/// TCP relay server
#[derive(Parser, Debug, Clone)]
#[clap(author, version, about, long_about = None)]
pub struct Args {
    /// Access tokens
    #[clap(short, long)]
    pub tokens: Vec<String>,

    /// Access tokens stored in a file, one token per line
    #[clap(long)]
    pub tokens_file: Option<String>,

    /// Forwarded ports
    #[clap(short, long)]
    pub ports: Vec<u16>,

    /// Upstream server
    #[clap(short, long, default_value = "127.0.0.1")]
    pub upstream_server: String,

    /// HTTP server listen address
    #[clap(short, long, default_value = "0.0.0.0:8000")]
    pub listen_address: String,

    /// Increment ports on client. Useful for debugging and running both client and server
    /// on the same machine
    #[clap(short, long, default_value_t = 0)]
    pub increment_ports: u16,
}