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!" }