mecha10_cli/services/process/
build.rs1use super::ProcessService;
7use anyhow::{Context, Result};
8use std::process::Command;
9
10impl ProcessService {
11 pub fn build_node(&self, node_name: &str, release: bool) -> Result<()> {
13 let mut cmd = Command::new("cargo");
14 cmd.arg("build");
15
16 if release {
17 cmd.arg("--release");
18 }
19
20 cmd.arg("--bin").arg(node_name);
21
22 let output = cmd
23 .output()
24 .with_context(|| format!("Failed to build node: {}", node_name))?;
25
26 if !output.status.success() {
27 let stderr = String::from_utf8_lossy(&output.stderr);
28 return Err(anyhow::anyhow!("Build failed for {}: {}", node_name, stderr));
29 }
30
31 Ok(())
32 }
33
34 pub fn build_all(&self, release: bool) -> Result<()> {
36 let mut cmd = Command::new("cargo");
37 cmd.arg("build");
38
39 if release {
40 cmd.arg("--release");
41 }
42
43 cmd.arg("--all");
44
45 let output = cmd.output().context("Failed to build workspace")?;
46
47 if !output.status.success() {
48 let stderr = String::from_utf8_lossy(&output.stderr);
49 return Err(anyhow::anyhow!("Build failed: {}", stderr));
50 }
51
52 Ok(())
53 }
54}