diff options
Diffstat (limited to 'server/replaytool/src/render.rs')
| -rw-r--r-- | server/replaytool/src/render.rs | 16 |
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?; |