aboutsummaryrefslogtreecommitdiff
path: root/server/replaytool/src/render.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/replaytool/src/render.rs')
-rw-r--r--server/replaytool/src/render.rs16
1 files changed, 10 insertions, 6 deletions
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?;