From 1f48abdf76664387d9e6527c82cd93e6b3232832 Mon Sep 17 00:00:00 2001 From: mintybasil <163682877+mintybasil@users.noreply.github.com> Date: Mon, 20 Apr 2026 17:24:47 +0000 Subject: [PATCH] Fail on run if no manifest --- crates/bento-bench/src/commands/manifest.rs | 21 ++++++++++++------- .../bento-bench/src/commands/prepare_local.rs | 2 +- .../src/commands/prepare_request.rs | 2 +- crates/bento-bench/src/commands/run_bench.rs | 2 +- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/crates/bento-bench/src/commands/manifest.rs b/crates/bento-bench/src/commands/manifest.rs index 89eb89b..36276c9 100644 --- a/crates/bento-bench/src/commands/manifest.rs +++ b/crates/bento-bench/src/commands/manifest.rs @@ -1,4 +1,4 @@ -use anyhow::{Context, Result}; +use anyhow::{Context, Result, anyhow}; use serde::{Deserialize, Serialize}; use std::fs; use std::path::Path; @@ -22,16 +22,23 @@ pub struct ManifestEntry { pub cycles: u64, } -pub fn load_manifest(manifest_dir: &Path) -> Result { +pub fn load_manifest(manifest_dir: &Path, create: bool) -> Result { let manifest_path = manifest_dir.join("manifest.json"); if !fs::exists(&manifest_path).unwrap_or(false) { - let manifest = Manifest { - description: String::from("TODO"), - entries: Vec::new(), + return match create { + true => { + let manifest = Manifest { + description: String::from("TODO"), + entries: Vec::new(), + }; + tracing::warn!( + "New manifest file will be created, description needs to be updated" + ); + Ok(manifest) + } + false => Err(anyhow!("No manifest file found in {manifest_dir:?}")), }; - tracing::warn!("New manifest file will be created, description needs to be updated"); - return Ok(manifest); } let manifest_str = fs::read_to_string(&manifest_path) diff --git a/crates/bento-bench/src/commands/prepare_local.rs b/crates/bento-bench/src/commands/prepare_local.rs index d2ed188..8fb79df 100644 --- a/crates/bento-bench/src/commands/prepare_local.rs +++ b/crates/bento-bench/src/commands/prepare_local.rs @@ -30,7 +30,7 @@ impl PrepareLocalArgs { pub async fn run(&self) -> Result<()> { let data_dir = self.common.data_dir.clone(); - let mut manifest = load_manifest(&self.common.data_dir)?; + let mut manifest = load_manifest(&self.common.data_dir, true)?; let images_dir = data_dir.join("images"); create_dir_all(&images_dir).await.context(format!( diff --git a/crates/bento-bench/src/commands/prepare_request.rs b/crates/bento-bench/src/commands/prepare_request.rs index 4ca3ef5..c4ba3d6 100644 --- a/crates/bento-bench/src/commands/prepare_request.rs +++ b/crates/bento-bench/src/commands/prepare_request.rs @@ -30,7 +30,7 @@ impl PrepareRequestArgs { pub async fn run(&self) -> Result<()> { let data_dir = self.common.data_dir.clone(); - let mut manifest = load_manifest(&self.common.data_dir)?; + let mut manifest = load_manifest(&self.common.data_dir, true)?; let images_dir = data_dir.join("images"); create_dir_all(&images_dir).await.context(format!( diff --git a/crates/bento-bench/src/commands/run_bench.rs b/crates/bento-bench/src/commands/run_bench.rs index 87757cf..28447b6 100644 --- a/crates/bento-bench/src/commands/run_bench.rs +++ b/crates/bento-bench/src/commands/run_bench.rs @@ -101,7 +101,7 @@ pub struct BenchJsonOutput { impl RunArgs { pub async fn run(&self) -> Result<()> { - let manifest = load_manifest(&self.common.data_dir)?; + let manifest = load_manifest(&self.common.data_dir, false)?; self.prover_config .proving_backend