diff options
| author | rtkay123 <dev@kanjala.com> | 2026-02-03 13:45:46 +0200 |
|---|---|---|
| committer | rtkay123 <dev@kanjala.com> | 2026-02-03 13:45:46 +0200 |
| commit | eb2e86997d47249aa31b703598de13ab2eb96caa (patch) | |
| tree | 9a591adee7d027b305d07a04987b5559b99f4d37 /src/config/cli.rs | |
| parent | 0ea3cb1d4743b922fbc6e07037096e75caffba8f (diff) | |
| download | sellershut-master.tar.bz2 sellershut-master.zip | |
Diffstat (limited to 'src/config/cli.rs')
| -rw-r--r-- | src/config/cli.rs | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/src/config/cli.rs b/src/config/cli.rs deleted file mode 100644 index be1b913..0000000 --- a/src/config/cli.rs +++ /dev/null @@ -1,113 +0,0 @@ -use std::path::PathBuf; - -use clap::Parser; -#[cfg(feature = "oauth-discord")] -use secrecy::SecretString; -use serde::Deserialize; -use url::Url; - -use crate::config::{logging::LogLevel, port::port_in_range}; - -#[derive(Parser, Debug)] -#[command(version, about, long_about = None, name = env!("CARGO_PKG_NAME"))] -pub struct Cli { - /// Sets the port the server listens on - #[arg(short, long, default_value = "2210", env = "PORT", value_parser = port_in_range)] - pub port: Option<u16>, - - /// Server's domain - #[arg(short, long, default_value = "localhost", env = "DOMAIN")] - pub domain: Option<String>, - - /// Sets a custom config file - #[arg(short, long, value_name = "FILE")] - pub config: Option<PathBuf>, - - /// Sets the application log level - #[arg(short, long, value_enum, env = "LOG_LEVEL", default_value = "debug")] - pub log_level: Option<LogLevel>, - - /// Request timeout duration (in seconds) - #[arg(short, long, env = "TIMEOUT_SECONDS", default_value = "10")] - pub timeout_duration: Option<u64>, - - /// Users database connection string - #[arg( - long, - env = "USERS_DATABASE_URL", - default_value = "postgres://postgres:password@localhost:5432/sellershut" - )] - pub db: Option<Url>, - - /// Server's system name - #[arg(short, long, default_value = "sellershut", env = "SYSTEM_NAME")] - pub system_name: Option<String>, - - /// Server's system name - #[arg(short, long, default_value = "prod", env = "SYSTEM_NAME")] - pub environment: Option<String>, - - /// Oauth optionas - #[command(flatten)] - #[cfg(feature = "oauth")] - pub oauth: OAuth, -} - -#[derive(Debug, Clone, Parser, Deserialize)] -pub struct OAuth { - #[cfg(feature = "oauth-discord")] - #[command(flatten)] - discord: DiscordOauth, - #[arg(long, env = "OAUTH_REDIRECT_URL")] - oauth_redirect_url: Option<Url>, -} - -#[cfg(feature = "oauth-discord")] -#[derive(Debug, Clone, Parser, Deserialize, Default)] -pub struct DiscordOauth { - #[arg(long, env = "OAUTH_DISCORD_CLIENT_ID")] - discord_client_id: Option<String>, - #[arg(long, env = "OAUTH_DISCORD_CLIENT_SECRET")] - discord_client_secret: Option<SecretString>, - #[arg( - long, - env = "OAUTH_DISCORD_TOKEN_URL", - default_value = "https://discord.com/api/oauth2/token" - )] - discord_token_url: Option<Url>, - #[arg( - long, - env = "OAUTH_DISCORD_AUTH_URL", - default_value = "https://discord.com/api/oauth2/authorize?response_type=code" - )] - discord_auth_url: Option<Url>, -} - -#[cfg(test)] -impl Default for Cli { - fn default() -> Self { - let url = Url::parse("postgres://postgres:password@localhost:5432/sellershut").ok(); - Self { - port: Default::default(), - config: Default::default(), - log_level: Default::default(), - timeout_duration: Some(10), - domain: Default::default(), - system_name: Default::default(), - environment: Default::default(), - oauth: None, - db: url, - } - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn verify_cli() { - use clap::CommandFactory; - Cli::command().debug_assert(); - } -} |
