aboutsummaryrefslogtreecommitdiff
path: root/server/replaytool
diff options
context:
space:
mode:
authornokoe <nokoe@mailbox.org>2026-02-26 05:15:54 +0100
committernokoe <nokoe@mailbox.org>2026-02-27 19:31:14 +0100
commita859bceeddc8e746bba630b3cc197532b68adbcb (patch)
treef8e033595d21e4de34774e4caed8b483c7eba5c6 /server/replaytool
parent6419d8c8139d697af309b7db2e698effa8290582 (diff)
downloadhurrycurry-a859bceeddc8e746bba630b3cc197532b68adbcb.tar
hurrycurry-a859bceeddc8e746bba630b3cc197532b68adbcb.tar.bz2
hurrycurry-a859bceeddc8e746bba630b3cc197532b68adbcb.tar.zst
use stable rust toolchainstable-rust
Diffstat (limited to 'server/replaytool')
-rw-r--r--server/replaytool/Cargo.toml1
-rw-r--r--server/replaytool/src/main.rs1
-rw-r--r--server/replaytool/src/render.rs16
3 files changed, 11 insertions, 7 deletions
diff --git a/server/replaytool/Cargo.toml b/server/replaytool/Cargo.toml
index cc13b4a9..b3055704 100644
--- a/server/replaytool/Cargo.toml
+++ b/server/replaytool/Cargo.toml
@@ -19,3 +19,4 @@ async-compression = { version = "0.4.30", features = ["zstd", "tokio"] }
rustls = { version = "0.23.31", features = ["ring"] }
hurrycurry-protocol = { path = "../protocol" }
+rand = "0.10.0"
diff --git a/server/replaytool/src/main.rs b/server/replaytool/src/main.rs
index 7f60287f..8dde133d 100644
--- a/server/replaytool/src/main.rs
+++ b/server/replaytool/src/main.rs
@@ -15,7 +15,6 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-#![feature(exit_status_error, random)]
pub mod record;
pub mod render;
diff --git a/server/replaytool/src/render.rs b/server/replaytool/src/render.rs
index b3290e07..9654256d 100644
--- a/server/replaytool/src/render.rs
+++ b/server/replaytool/src/render.rs
@@ -17,9 +17,9 @@
*/
use crate::replay::replay;
-use anyhow::{Context, Result, anyhow};
+use anyhow::{Context, Result, anyhow, bail};
use log::info;
-use std::{path::PathBuf, random::random, str::FromStr};
+use std::{path::PathBuf, str::FromStr};
use tokio::{
fs::{File, create_dir_all, remove_dir, remove_file},
io::AsyncWriteExt,
@@ -58,9 +58,10 @@ pub struct RenderArgs {
pub async fn render(a: RenderArgs) -> Result<()> {
let ws_listener = TcpListener::bind(("127.0.0.1", a.port)).await?;
- let cwd = PathBuf::from_str("/tmp")
- .unwrap()
- .join(format!("hurrycurry-render-cfg-{:016x}", random::<u64>(..)));
+ let cwd = PathBuf::from_str("/tmp").unwrap().join(format!(
+ "hurrycurry-render-cfg-{:016x}",
+ rand::random::<u64>()
+ ));
let config = {
let (width, height) = a
@@ -130,7 +131,10 @@ window/size/viewport_height={height}
info!("listening for websockets on {}", ws_listener.local_addr()?);
replay(&ws_listener, &a.input).await?;
- client.wait().await?.exit_ok()?;
+ let e = client.wait().await?;
+ if !e.success() {
+ bail!("failed with code {:?}", e.code())
+ }
remove_file(cwd.join("override.cfg")).await?;
remove_file(cwd.join("client.pck")).await?;