use std::sync::Arc; use axum::{ Router, middleware::{self}, routing::{get, post}, }; use tower_http::services::ServeFile; use crate::config::Config; include!(concat!(env!("OUT_DIR"), "/mod.rs")); mod config; mod log; mod ping; mod wake; pub fn router(conf: Config) -> Router { Router::new() .route("/wake", post(wake::main)) .route("/config", get(config::main)) .route("/ping", get(ping::main)) .nest_service("/favicon.ico", ServeFile::new(&conf.info.icon)) .with_state(Arc::new(conf)) .merge(dist::main()) .layer(middleware::from_fn(log::main)) }