pub(crate) mod command;
#[cfg(feature = "recovery-state")]
mod state;
use std::path::PathBuf;
use clap::Parser;
use clap::builder::PossibleValuesParser;
#[derive(Parser, Debug)]
#[command(
author="Dusk Network B.V. All Rights Reserved.",
version = &rusk::VERSION_BUILD[..],
about = "Rusk server node",
)]
pub struct Args {
#[clap(long, short, env = "RUSK_CONFIG_TOML", value_parser)]
pub config: Option<PathBuf>,
#[clap(long)]
pub log_level: Option<tracing::Level>,
#[clap(long, value_parser = PossibleValuesParser::new(["coloured", "plain", "json"]))]
pub log_type: Option<String>,
#[clap(long)]
pub log_filter: Option<String>,
#[clap(long, value_parser)]
pub profile: Option<PathBuf>,
#[cfg(feature = "ephemeral")]
#[clap(short, long = "state", value_parser)]
pub state_path: Option<PathBuf>,
#[clap(long, value_parser)]
pub db_path: Option<PathBuf>,
#[clap(long, value_parser)]
pub consensus_keys_path: Option<PathBuf>,
#[clap(long)]
pub migration_height: Option<u64>,
#[clap(long)]
pub delay_on_resp_msg: Option<u64>,
#[clap(long)]
pub http_listen_addr: Option<String>,
#[clap(long)]
pub telemetry_listen_addr: Option<String>,
#[clap(long, env = "KADCAST_BOOTSTRAP", verbatim_doc_comment)]
pub kadcast_bootstrap: Option<Vec<String>>,
#[clap(long, env = "KADCAST_PUBLIC_ADDRESS", verbatim_doc_comment)]
pub kadcast_public_address: Option<String>,
#[clap(long, env = "KADCAST_LISTEN_ADDRESS", verbatim_doc_comment)]
pub kadcast_listen_address: Option<String>,
#[clap(short = 'n', long = "network-id")]
pub kadcast_network_id: Option<u8>,
#[clap(subcommand)]
pub command: Option<command::Command>,
}