use cirious_codex_derive::{CodexCommand, CodexParser};
#[derive(Debug, Clone)]
pub struct GlobalArgs {
pub verbose: bool,
pub config_path: Option<String>,
}
pub trait CodexCommand {
fn global_args(&self) -> &GlobalArgs;
}
#[derive(CodexParser, CodexCommand, Debug)]
pub struct AuthConfig {
pub global: GlobalArgs,
#[codex(aliase = "p", command = "port", default_value = "3000")]
pub port: u16,
#[codex(
aliase = "c",
command = "config",
default_value = "examples/resources/config/test.json"
)]
pub config_path: String,
}
fn main() {
let config = AuthConfig::parse_cli(None);
println!("Server will bind to port: {}", config.port);
println!("Config file location: {}", config.config_path);
if config.global.verbose {
println!("Verbose mode is ON");
}
}