cedros-admin-server 0.1.0

Shared admin server shell for Cedros admin composition
Documentation
use clap::Parser;
use tracing_subscriber::{fmt, layer::SubscriberExt, util::SubscriberInitExt, EnvFilter};

use cedros_admin::{run, Config};

#[derive(Debug, Parser)]
#[command(name = "cedros-admin-server")]
#[command(about = "Standalone shell for Cedros admin composition")]
struct Cli {
    #[arg(long)]
    bind_addr: Option<String>,
}

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    init_tracing();

    let cli = Cli::parse();
    let mut config = Config::from_env();
    if let Some(bind_addr) = cli.bind_addr {
        config.bind_addr = bind_addr;
    }

    run(config).await
}

fn init_tracing() {
    let env_filter = EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("info"));

    tracing_subscriber::registry()
        .with(env_filter)
        .with(fmt::layer().with_target(false))
        .init();
}