From 859fd855e1a819280931ffbb6ae98098b2774269 Mon Sep 17 00:00:00 2001 From: Toby Vincent Date: Wed, 9 Oct 2024 18:28:44 -0500 Subject: feat: make file server optional --- src/main.rs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 46adbfa..85ff708 100644 --- a/src/main.rs +++ b/src/main.rs @@ -22,10 +22,13 @@ async fn main() -> Result<(), Box> { }; let state = AppState::spawn_services(config.services); - let router = statsrv::router() - .with_state(state) - .nest_service("/", ServeDir::new(config.root)) - .layer(tower_http::trace::TraceLayer::new_for_http()); + let mut router = statsrv::router().with_state(state); + + if let Some(path) = config.serve_dir { + router = router.nest_service("/", ServeDir::new(path)); + } + + router = router.layer(tower_http::trace::TraceLayer::new_for_http()); let listener = tokio::net::TcpListener::bind(config.address).await.unwrap(); tracing::info!("listening on {}", listener.local_addr().unwrap()); @@ -36,7 +39,7 @@ async fn main() -> Result<(), Box> { #[derive(Debug, Clone, serde::Deserialize)] #[serde(default)] pub struct Config { - pub root: PathBuf, + pub serve_dir: Option, pub address: String, pub services: HashMap, } @@ -60,7 +63,7 @@ impl Config { impl Default for Config { fn default() -> Self { Self { - root: PathBuf::from("./"), + serve_dir: None, address: String::from("127.0.0.1:8080"), services: Default::default(), } -- cgit v1.2.3-70-g09d2