cometbft-testgen 0.1.0-alpha.2

cometbft-testgen is a library and a small binary utility for generating CometBFT datastructures from minimal input (for testing purposes only). The library also contains some functionality to simplify running test batches.
Documentation
use std::io;

use serde::Deserialize;

use crate::command::*;

#[derive(Deserialize, Clone, Debug)]
pub struct JsonatrTransform {
    pub input: String,
    pub include: Vec<String>,
    pub output: String,
}

pub fn run_jsonatr_transform(dir: &str, transform: JsonatrTransform) -> io::Result<CommandRun> {
    let mut cmd = Command::new();
    cmd.program("jsonatr");
    cmd.arg("--in");
    cmd.arg(&transform.input);
    cmd.arg("--out");
    cmd.arg(&transform.output);
    for include in transform.include {
        cmd.arg("--use");
        cmd.arg(&include);
    }
    if !dir.is_empty() {
        cmd.current_dir(dir);
    }
    match cmd.spawn() {
        Ok(run) => {
            if run.status.success() {
                Ok(run)
            } else {
                Err(io::Error::new(io::ErrorKind::Interrupted, run.stderr))
            }
        },
        Err(e) => Err(e),
    }
}