use super::ProcessService;
use anyhow::{Context, Result};
use std::process::Command;
impl ProcessService {
pub fn build_node(&self, node_name: &str, release: bool) -> Result<()> {
let mut cmd = Command::new("cargo");
cmd.arg("build");
if release {
cmd.arg("--release");
}
cmd.arg("--bin").arg(node_name);
let output = cmd
.output()
.with_context(|| format!("Failed to build node: {}", node_name))?;
if !output.status.success() {
let stderr = String::from_utf8_lossy(&output.stderr);
return Err(anyhow::anyhow!("Build failed for {}: {}", node_name, stderr));
}
Ok(())
}
pub fn build_all(&self, release: bool) -> Result<()> {
let mut cmd = Command::new("cargo");
cmd.arg("build");
if release {
cmd.arg("--release");
}
cmd.arg("--all");
let output = cmd.output().context("Failed to build workspace")?;
if !output.status.success() {
let stderr = String::from_utf8_lossy(&output.stderr);
return Err(anyhow::anyhow!("Build failed: {}", stderr));
}
Ok(())
}
}