diff options
Diffstat (limited to 'subplotlib/build.rs')
-rw-r--r-- | subplotlib/build.rs | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/subplotlib/build.rs b/subplotlib/build.rs index f22a50c..977f432 100644 --- a/subplotlib/build.rs +++ b/subplotlib/build.rs @@ -2,8 +2,8 @@ // // We use the `subplot_build` crate to generate a Rust test code file // with functions for the scenarios for each subplot file -// (subplot/*.md in the source tree). The generated file is written to -// the Cargo target directory. For each subplot foo.md there should be +// (subplot/*.subplot in the source tree). The generated file is written to +// the Cargo target directory. For each subplot foo.subplot there should be // a tests/foo.rs in the source tree, which includes the generated // file from the Cargo target tree. The source file should look like this: // @@ -14,15 +14,15 @@ use glob::glob; use std::{fs, path::Path}; -fn gen_tests() { - let subplots = glob("*.md").expect("failed to find subplots in subplotlib"); +fn gen_tests() -> Result<(), subplot_build::SubplotError> { + let subplots = glob("*.subplot").expect("failed to find subplots in subplotlib"); let tests = Path::new("tests"); - let subplots = subplots.chain(Some(Ok("../subplot.md".into()))); + let subplots = subplots.chain(Some(Ok("../subplot.subplot".into()))); let subplots = subplots - .chain(glob("../tests/subplots/common/*.md").expect("failed to find common subplots")); + .chain(glob("../tests/subplots/common/*.subplot").expect("failed to find common subplots")); for entry in subplots { let entry = entry.expect("failed to get subplot dir entry in subplotlib"); - let mut inc = tests.join(&entry.file_name().unwrap()); + let mut inc = tests.join(entry.file_name().unwrap()); inc.set_extension("rs"); if !inc.exists() { panic!("missing include file: {}", inc.display()); @@ -31,12 +31,16 @@ fn gen_tests() { println!("cargo:rerun-if-changed={}", entry.display()); subplot_build::codegen(Path::new(&entry)).expect("failed to generate code with Subplot"); } + Ok(()) } fn main() { // Because we cannot generate tests if we're not fully inside the main subplot tree - // we only generate them if we can see ../subplot.md which is a good indicator. - if fs::metadata("../subplot.md").is_ok() { - gen_tests(); + // we only generate them if we can see ../subplot.subplot which is a good indicator. + if fs::metadata("../subplot.subplot").is_ok() { + if let Err(e) = gen_tests() { + eprintln!("Failed to generate code from subplot: {e}"); + std::process::exit(1); + } } } |