From 873ca81c3b053a8abd2f6af2284acf131c81f509 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Fri, 14 Apr 2023 18:17:14 +0300 Subject: feat: export SubplotError from subplot-build crate This will allow better error messages from projects' build.rs. Sponsored-by: author --- subplot-build/src/lib.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/subplot-build/src/lib.rs b/subplot-build/src/lib.rs index 20d3e08..db47623 100644 --- a/subplot-build/src/lib.rs +++ b/subplot-build/src/lib.rs @@ -7,7 +7,8 @@ use std::env::var_os; use std::fmt::Debug; use std::path::{Path, PathBuf}; -use subplot::{get_basedir_from, SubplotError}; +use subplot::get_basedir_from; +pub use subplot::SubplotError; use tracing::{event, instrument, span, Level}; /// Generate code for one document, inside `build.rs`. -- cgit v1.2.1 From b1b5abe8e8a1016ac5a35c315c259275abe1a0ac Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Fri, 14 Apr 2023 18:23:36 +0300 Subject: fix: if subplotlib's build.rs fails, print the error message Sponsored-by: author --- subplotlib/build.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/subplotlib/build.rs b/subplotlib/build.rs index 77e493a..977f432 100644 --- a/subplotlib/build.rs +++ b/subplotlib/build.rs @@ -14,7 +14,7 @@ use glob::glob; use std::{fs, path::Path}; -fn gen_tests() { +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.subplot".into()))); @@ -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.subplot which is a good indicator. if fs::metadata("../subplot.subplot").is_ok() { - gen_tests(); + if let Err(e) = gen_tests() { + eprintln!("Failed to generate code from subplot: {e}"); + std::process::exit(1); + } } } -- cgit v1.2.1