summaryrefslogtreecommitdiff
path: root/subplotlib/build.rs
diff options
context:
space:
mode:
Diffstat (limited to 'subplotlib/build.rs')
-rw-r--r--subplotlib/build.rs24
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);
+ }
}
}