obnam_benchmark/
summain.rs1use std::path::Path;
2use std::process::Command;
3
4#[derive(Debug, thiserror::Error)]
5pub enum SummainError {
6 #[error("failed to run summain: {0}")]
7 Run(std::io::Error),
8}
9
10pub fn summain(root: &Path) -> Result<String, SummainError> {
11 let output = Command::new("summain")
12 .arg(".")
13 .current_dir(root)
14 .output()
15 .map_err(SummainError::Run)?;
16 if output.status.code() != Some(0) {
17 eprintln!("{}", String::from_utf8_lossy(&output.stdout));
18 eprintln!("{}", String::from_utf8_lossy(&output.stderr));
19 std::process::exit(1);
20 }
21
22 Ok(String::from_utf8_lossy(&output.stdout)
23 .to_owned()
24 .to_string())
25}