diff options
author | metamuffin <metamuffin@disroot.org> | 2025-08-24 21:43:28 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-08-24 21:43:28 +0200 |
commit | dee404ca1a19fcf7176b88ae6acd7095d3b063e3 (patch) | |
tree | 219794728d7e0b0c76b954e281e46a9882ef7361 /server/src | |
parent | 81bad4ada7a75cb337524962971f26682005f100 (diff) | |
download | hurrycurry-dee404ca1a19fcf7176b88ae6acd7095d3b063e3.tar hurrycurry-dee404ca1a19fcf7176b88ae6acd7095d3b063e3.tar.bz2 hurrycurry-dee404ca1a19fcf7176b88ae6acd7095d3b063e3.tar.zst |
add runtime DATA_SEARCH_PATH variable; always fall back
Diffstat (limited to 'server/src')
-rw-r--r-- | server/src/main.rs | 38 |
1 files changed, 20 insertions, 18 deletions
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,28 +103,29 @@ 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(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(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() |