From ce65d9eeafcd1f9d5c3adef1c9b1af6258ee711a Mon Sep 17 00:00:00 2001 From: rtkay123 Date: Sun, 1 Feb 2026 13:33:07 +0200 Subject: feat: conn to db --- src/main.rs | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index e7a11a9..cb8c2a9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,39 @@ -fn main() { - println!("Hello, world!"); +mod config; +mod logging; +mod server; + +use std::net::{Ipv6Addr, SocketAddr}; + +use clap::Parser; +use tokio::net::TcpListener; +use tracing::info; + +use crate::{config::Config, logging::initialise_logging, server::state::{AppState }}; + +#[tokio::main] +async fn main() -> anyhow::Result<()> { + let cli = config::Cli::parse(); + let mut config: Config = if let Some(ref path) = cli.config { + let contents = std::fs::read_to_string(path)?; + toml::from_str(&contents)? + } else { + Default::default() + }; + config.merge_with_cli(&cli); + + initialise_logging(&config); + + let state = AppState::new(&config).await?; + let router = server::router(&config, state).await?; + + let addr = SocketAddr::from((Ipv6Addr::UNSPECIFIED, config.server.port)); + info!(port = addr.port(), "starting server"); + let listener = TcpListener::bind(addr).await?; + + // Run the server with graceful shutdown + axum::serve(listener, router) + .with_graceful_shutdown(server::shutdown::shutdown_signal()) + .await?; + + Ok(()) } -- cgit v1.2.3