aboutsummaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-11-21 21:56:29 +0100
committermetamuffin <metamuffin@disroot.org>2025-11-21 21:56:29 +0100
commit3d03577a1c9f3d1d08513490e15651e7f9ce0c2d (patch)
tree918888f81c8b76521a0a4b9b18377efe861ad634 /server
parentbe94a98d0704edf13bb5b2098cf54571d864f45b (diff)
downloadhurrycurry-3d03577a1c9f3d1d08513490e15651e7f9ce0c2d.tar
hurrycurry-3d03577a1c9f3d1d08513490e15651e7f9ce0c2d.tar.bz2
hurrycurry-3d03577a1c9f3d1d08513490e15651e7f9ce0c2d.tar.zst
replaytool port argument + error contexts
Diffstat (limited to 'server')
-rw-r--r--server/replaytool/src/render.rs22
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?;