use clap::{Parser, ValueEnum};
#[derive(Debug, Clone, Parser)]
#[clap(author, version, about)]
pub enum Args {
Serve(ArgsConfig),
Proxy(ArgsProxy),
GenerateConfig(ArgsGenerate),
}
#[derive(Debug, Clone, Parser)]
pub struct ArgsConfig {
#[clap(long)]
pub node_id: Option<u64>,
#[clap(short, long, default_value = "$HOME/.hiqlite/hiqlite.toml")]
pub config_file: String,
#[clap(long)]
pub log_statements: Option<bool>,
#[clap(short, long, default_value = "info")]
pub log_level: LogLevel,
}
#[derive(Debug, Clone, Parser)]
pub struct ArgsProxy {
#[clap(short, long, default_value = "$HOME/.hiqlite/hiqlite.env")]
pub config_file: String,
#[clap(short, long, default_value = "info")]
pub log_level: LogLevel,
}
#[derive(Debug, Clone, Parser)]
pub struct ArgsGenerate {
#[clap(short, long, default_value = "false")]
pub password: bool,
#[clap(long, default_value = "false")]
pub insecure_cookie: bool,
}
#[derive(Debug, Clone, ValueEnum)]
pub enum LogLevel {
Debug,
Info,
Warn,
Error,
}
impl LogLevel {
pub fn as_str(&self) -> &str {
match self {
LogLevel::Debug => "debug",
LogLevel::Info => "info",
LogLevel::Warn => "warn",
LogLevel::Error => "error",
}
}
}