achubb_website/src/lib.rs

34 lines
1 KiB
Rust

use sqlx::PgPool;
use tracing::info;
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
mod database;
mod html;
mod macros;
pub async fn run() -> std::io::Result<()> {
let pool: PgPool = match database::establish_connection().await {
Ok(p) => p,
Err(_) => panic!("error connecting to database"),
};
tracing_subscriber::registry()
.with(
tracing_subscriber::EnvFilter::try_from_default_env()
.unwrap_or_else(|_| "achubb_backend".into()),
)
.with(tracing_subscriber::fmt::layer())
.init();
info!("initializing router...");
let port = 21212_u16;
let addr = std::net::SocketAddr::from(([0, 0, 0, 0], port));
let router = html::root::get_router(pool);
info!("router initialized, now listening on port {}", port);
match axum::Server::bind(&addr)
.serve(router.into_make_service())
.await
{
Ok(p) => p,
Err(_) => panic!("error starting webserver"),
}
Ok(())
}