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<()> {
20 let mut cmd = Command::new("cargo");
21 cmd.arg("build");
22
23 if release {
24 cmd.arg("--release");
25 }
26
27 cmd.arg("--bin").arg(node_name);
28
29 let output = cmd
30 .output()
31 .with_context(|| format!("Failed to build node: {}", node_name))?;
32
33 if !output.status.success() {
34 let stderr = String::from_utf8_lossy(&output.stderr);
35 return Err(anyhow::anyhow!("Build failed for {}: {}", node_name, stderr));
36 }
37
38 Ok(())
39 }
40
41 pub fn build_all(&self, release: bool) -> Result<()> {
47 let mut cmd = Command::new("cargo");
48 cmd.arg("build");
49
50 if release {
51 cmd.arg("--release");
52 }
53
54 cmd.arg("--all");
55
56 let output = cmd.output().context("Failed to build workspace")?;
57
58 if !output.status.success() {
59 let stderr = String::from_utf8_lossy(&output.stderr);
60 return Err(anyhow::anyhow!("Build failed: {}", stderr));
61 }
62
63 Ok(())
64 }
65}