dc-runner-cli 0.2.12

Required Rust runner lane for Data Contracts.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use std::path::Path;
use std::process::Command;

use crate::ports::process::ProcessRunner;

pub struct StdProcessRunner;

impl ProcessRunner for StdProcessRunner {
    fn run_capture(&self, program: &str, args: &[String], root: &Path) -> Result<i32, String> {
        let status = Command::new(program)
            .args(args)
            .current_dir(root)
            .status()
            .map_err(|e| format!("failed to run {program}: {e}"))?;
        Ok(status.code().unwrap_or(1))
    }
}