use crate::dev::node_selection::NodeToRun;
use anyhow::Result;
pub fn print_header() {
println!();
println!("🔧 Mecha10 Development Mode");
println!("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
println!();
}
pub fn print_project_info(name: &str, version: &str) {
println!("Project: {}", name);
println!("Version: {}", version);
println!();
}
pub fn print_nodes(nodes: &[NodeToRun]) {
println!("Nodes to run:");
for node in nodes {
println!(" • {}", node.identifier);
}
println!();
}
pub fn print_mode_status(mode: &str, running_nodes: &[String], all_configured_nodes: &[NodeToRun]) {
println!("Mode: {}", mode);
println!();
if !running_nodes.is_empty() {
println!("Running nodes:");
for node in running_nodes {
println!(" ✅ {}", node);
}
println!();
}
let stopped: Vec<_> = all_configured_nodes
.iter()
.filter(|n| !running_nodes.contains(&n.identifier) && !running_nodes.contains(&n.name))
.collect();
if !stopped.is_empty() {
println!("Stopped nodes:");
for node in stopped {
println!(" ⏸ {}", node.identifier);
}
println!();
}
}
pub fn print_no_nodes() -> Result<()> {
println!("No nodes configured to run.");
println!();
println!("To add nodes:");
println!(" mecha10 add <component>");
println!();
Ok(())
}