[WIP] A simple wake-on-lan service
1use std::sync::Arc;
2
3use axum::{
4 Router,
5 middleware::{self},
6 routing::{get, post},
7};
8use tower_http::services::ServeFile;
9
10use crate::config::Config;
11
12include!(concat!(env!("OUT_DIR"), "/mod.rs"));
13mod config;
14mod log;
15mod ping;
16mod wake;
17
18pub fn router(conf: Config) -> Router {
19 Router::new()
20 .route("/wake", post(wake::main))
21 .route("/config", get(config::main))
22 .route("/ping", get(ping::main))
23 .nest_service("/favicon.ico", ServeFile::new(&conf.info.icon))
24 .with_state(Arc::new(conf))
25 .merge(dist::main())
26 .layer(middleware::from_fn(log::main))
27}