#![allow(clippy::multiple_crate_versions)]
use std::process::ExitCode;
use mildly_basic_auth::{Config, build_app};
const BIND_ADDRESS: &str = "0.0.0.0:8000";
#[tokio::main]
async fn main() -> ExitCode {
let config = match Config::from_env() {
Ok(config) => config,
Err(error) => {
eprintln!("error: {error}");
return ExitCode::FAILURE;
}
};
let listener = match tokio::net::TcpListener::bind(BIND_ADDRESS).await {
Ok(listener) => listener,
Err(error) => {
eprintln!("error: cannot bind `{BIND_ADDRESS}`: {error}");
return ExitCode::FAILURE;
}
};
if let Err(error) = axum::serve(listener, build_app(config)).await {
eprintln!("error: server failed: {error}");
return ExitCode::FAILURE;
}
ExitCode::SUCCESS
}