diff options
| author | metamuffin <metamuffin@disroot.org> | 2025-11-21 21:56:29 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2025-11-21 21:56:29 +0100 |
| commit | 3d03577a1c9f3d1d08513490e15651e7f9ce0c2d (patch) | |
| tree | 918888f81c8b76521a0a4b9b18377efe861ad634 /server/replaytool | |
| parent | be94a98d0704edf13bb5b2098cf54571d864f45b (diff) | |
| download | hurrycurry-3d03577a1c9f3d1d08513490e15651e7f9ce0c2d.tar hurrycurry-3d03577a1c9f3d1d08513490e15651e7f9ce0c2d.tar.bz2 hurrycurry-3d03577a1c9f3d1d08513490e15651e7f9ce0c2d.tar.zst | |
replaytool port argument + error contexts
Diffstat (limited to 'server/replaytool')
| -rw-r--r-- | server/replaytool/src/render.rs | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/server/replaytool/src/render.rs b/server/replaytool/src/render.rs index 96691e91..fa6e2fc4 100644 --- a/server/replaytool/src/render.rs +++ b/server/replaytool/src/render.rs @@ -17,6 +17,8 @@ */ use crate::replay::replay; +#[cfg(unix)] +use anyhow::Context; use anyhow::{Result, anyhow}; use log::info; use std::{path::PathBuf, random::random, str::FromStr}; @@ -51,11 +53,12 @@ pub struct RenderArgs { headless_compositor: String, #[arg(long, default_value = "/usr/share/hurrycurry/client.pck")] client_pck: PathBuf, + #[arg(long, default_value = "27090")] + port: u16, } pub async fn render(a: RenderArgs) -> Result<()> { - let port = 27090; - let ws_listener = TcpListener::bind(("127.0.0.1", port)).await?; + let ws_listener = TcpListener::bind(("127.0.0.1", a.port)).await?; let cwd = PathBuf::from_str("/tmp") .unwrap() @@ -82,9 +85,13 @@ window/size/viewport_height={height} .await?; #[cfg(unix)] - tokio::fs::symlink(&a.client_pck, cwd.join("client.pck")).await?; + tokio::fs::symlink(&a.client_pck, cwd.join("client.pck")) + .await + .context("symlinking pck")?; #[cfg(not(unix))] - tokio::fs::copy(&a.client_pck, cwd.join("client.pck")).await?; + tokio::fs::copy(&a.client_pck, cwd.join("client.pck")) + .await + .context("copying pck")?; let mut args = Vec::new(); if a.headless { @@ -113,11 +120,14 @@ window/size/viewport_height={height} if let Some(path) = &camera_path { args.extend(["--replay-camera", path]); } - let uri = format!("ws://127.0.0.1:{port}"); + let uri = format!("ws://127.0.0.1:{}", a.port); args.push(&uri); info!("using commandline {:?}", args.join(" ")); - let mut client = Command::new(args[0]).args(&args[1..]).spawn()?; + let mut client = Command::new(args[0]) + .args(&args[1..]) + .spawn() + .context("starting command")?; info!("listening for websockets on {}", ws_listener.local_addr()?); replay(&ws_listener, &a.input).await?; |