diff options
Diffstat (limited to 'server/src/main.rs')
| -rw-r--r-- | server/src/main.rs | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/server/src/main.rs b/server/src/main.rs index b1265420..7ab19f30 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -18,7 +18,6 @@ use anyhow::{bail, Result}; use clap::Parser; use futures_util::{SinkExt, StreamExt}; -use hurrycurry_data::index::DATA_DIR; use hurrycurry_locale::trm; use hurrycurry_protocol::{PacketC, PacketS}; use hurrycurry_server::{server::Server, ConnectionID}; @@ -92,7 +91,7 @@ fn main() -> Result<()> { info!("Starting Hurry Curry! Server {version} ({distribution})"); - let data_dir = if let Some(d) = args.data_dir.clone() { + let data_path = if let Some(d) = args.data_dir.clone() { d } else { let mut test_order = Vec::new(); @@ -134,22 +133,21 @@ fn main() -> Result<()> { info!("Selected data dir {d:?}"); PathBuf::from_str(d)? }; - *DATA_DIR.lock().unwrap() = Some(data_dir); tokio::runtime::Builder::new_multi_thread() .enable_all() .build()? - .block_on(run(args))?; + .block_on(run(data_path, args))?; Ok(()) } -async fn run(args: Args) -> anyhow::Result<()> { +async fn run(data_path: PathBuf, args: Args) -> anyhow::Result<()> { let ws_listener = TcpListener::bind(args.listen).await?; info!("Listening for websockets on {}", ws_listener.local_addr()?); let (tx, rx) = broadcast::channel::<PacketC>(128 * 1024); - let mut state = Server::new(tx)?; + let mut state = Server::new(data_path, tx)?; state.load(state.index.generate_with_book("lobby")?, None); let state = Arc::new(RwLock::new(state)); @@ -315,14 +313,12 @@ async fn run(args: Args) -> anyhow::Result<()> { #[cfg(test)] mod test { - use hurrycurry_data::index::DATA_DIR; use hurrycurry_protocol::{Character, PacketS, PlayerClass, PlayerID}; use hurrycurry_server::{server::Server, ConnectionID}; use std::future::Future; use tokio::sync::broadcast; fn harness(body: impl Future) { - *DATA_DIR.lock().unwrap() = Some("../data".into()); tokio::runtime::Builder::new_current_thread() .enable_all() .build() @@ -332,26 +328,26 @@ mod test { #[test] fn run() { - harness(async { Server::new(broadcast::channel(1024).0).unwrap() }); + harness(async { Server::new("../data".into(), broadcast::channel(1024).0).unwrap() }); } #[test] fn map_load() { harness(async { - let mut s = Server::new(broadcast::channel(1024).0).unwrap(); + let mut s = Server::new("../data".into(), broadcast::channel(1024).0).unwrap(); s.load(s.index.generate("5star").unwrap(), None); }); } #[test] fn map_load_book() { harness(async { - let mut s = Server::new(broadcast::channel(1024).0).unwrap(); + let mut s = Server::new("../data".into(), broadcast::channel(1024).0).unwrap(); s.load(s.index.generate_with_book("lobby").unwrap(), None); }); } #[test] fn tick() { harness(async { - let mut s = Server::new(broadcast::channel(1024).0).unwrap(); + let mut s = Server::new("../data".into(), broadcast::channel(1024).0).unwrap(); for _ in 0..100 { s.tick(0.1); } @@ -360,7 +356,7 @@ mod test { #[test] fn packet_sender_verif() { harness(async { - let mut s = Server::new(broadcast::channel(1024).0).unwrap(); + let mut s = Server::new("../data".into(), broadcast::channel(1024).0).unwrap(); for (conn, p) in [ PacketS::Effect { |