Skip to main content

systemprompt_cli/commands/infrastructure/services/restart/
mod.rs

1//! Service restart handlers shared by the single-target and batch restart
2//! paths.
3//!
4//! Re-exports the per-target entry points ([`execute_api`], [`execute_agent`],
5//! [`execute_mcp`]) and the batch entry points ([`execute_all_agents`],
6//! [`execute_all_mcp`], [`execute_failed`]). Batch paths compute a
7//! [`systemprompt_scheduler::RestartPlan`] from the observed service state
8//! and drive the orchestrators composed in the parent module's `lifecycle`.
9
10mod batch;
11mod single;
12
13use systemprompt_logging::CliService;
14
15use super::get_api_port;
16
17pub use batch::{execute_all_agents, execute_all_mcp, execute_failed};
18pub use single::{execute_agent, execute_api, execute_mcp};
19
20pub fn format_batch_message(
21    service_label: &str,
22    restarted: usize,
23    failed: usize,
24    quiet: bool,
25) -> String {
26    match (restarted, failed) {
27        (0, 0) => {
28            let msg = format!("No enabled {} found", service_label);
29            if !quiet {
30                CliService::info(&msg);
31            }
32            msg
33        },
34        (r, 0) => {
35            let msg = format!("Restarted {} {}", r, service_label);
36            if !quiet {
37                CliService::success(&msg);
38            }
39            msg
40        },
41        (0, f) => {
42            let msg = format!("Failed to restart {} {}", f, service_label);
43            if !quiet {
44                CliService::warning(&msg);
45            }
46            msg
47        },
48        (r, f) => {
49            if !quiet {
50                CliService::success(&format!("Restarted {} {}", r, service_label));
51                CliService::warning(&format!("Failed to restart {} {}", f, service_label));
52            }
53            format!("Restarted {} {}, {} failed", r, service_label, f)
54        },
55    }
56}