use axum::{routing::get, Router}; use maud::{html, Markup}; use tower_http::services::ServeDir; use tracing::info; use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt}; mod base; mod tasks; #[tokio::main] async fn main() { tracing_subscriber::registry() .with( tracing_subscriber::EnvFilter::try_from_default_env() .unwrap_or_else(|_| "clego_app=debug".into()), ) .with(tracing_subscriber::fmt::layer()) .init(); info!("initializing router..."); let router = Router::new() .route("/", get(hello)) .nest_service("/public", ServeDir::new("public")); let port = 3000_u16; let listener = tokio::net::TcpListener::bind(format!("0.0.0.0:{}", port)) .await .unwrap(); info!("router initialized, now listening on port {}", port); axum::serve(listener, router).await.unwrap(); } async fn hello() -> Markup { html! { (base::header()) main class="content" { h1 { "Howdy!" } } } }