From dee404ca1a19fcf7176b88ae6acd7095d3b063e3 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sun, 24 Aug 2025 21:43:28 +0200 Subject: add runtime DATA_SEARCH_PATH variable; always fall back --- server/src/main.rs | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) (limited to 'server') diff --git a/server/src/main.rs b/server/src/main.rs index 166a1dee..ed2e5681 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -26,6 +26,7 @@ use hurrycurry_server::{ }; use log::{debug, info, trace, warn, LevelFilter}; use std::{ + env::var, net::SocketAddr, path::PathBuf, process::exit, @@ -102,29 +103,30 @@ fn main() -> Result<()> { } else { let mut test_order = Vec::new(); + if let Ok(path) = var("DATA_SEARCH_PATH") { + test_order.push(path); + } + if let Some(path) = option_env!("DATA_SEARCH_PATH") { test_order.push(path.to_owned()); - } else { - #[cfg(debug_assertions)] - test_order.push("data".to_string()); - - #[cfg(not(debug_assertions))] - { - #[cfg(not(windows))] - test_order.extend([ - "/usr/local/share/hurrycurry/data".to_string(), - "/usr/share/hurrycurry/data".to_string(), - "/opt/hurrycurry/data".to_string(), - ]); - - #[cfg(windows)] - match read_windows_reg_datadir() { - Ok(path) => test_order.push(path), - Err(e) => warn!("Cannot find read datadir from windows registry: {e}"), - }; - } } + #[cfg(debug_assertions)] + test_order.push("data".to_string()); + + #[cfg(windows)] + match read_windows_reg_datadir() { + Ok(path) => test_order.push(path), + Err(e) => warn!("Cannot find read datadir from windows registry: {e}"), + }; + + #[cfg(not(windows))] + test_order.extend([ + "/usr/local/share/hurrycurry/data".to_string(), + "/usr/share/hurrycurry/data".to_string(), + "/opt/hurrycurry/data".to_string(), + ]); + let Some(d) = test_order .iter() .find(|p| PathBuf::from_str(p).unwrap().join("index.yaml").exists()) -- cgit v1.2.3-70-g09d2