Skip to main content

palladium_cli/commands/
status.rs

1use clap::Args;
2use schemars::JsonSchema;
3use serde::Serialize;
4
5use crate::client::ControlPlaneClient;
6use crate::client::Endpoint;
7use crate::output;
8use crate::CliResult;
9
10#[derive(Args, Debug, Serialize, JsonSchema)]
11#[serde(rename_all = "kebab-case")]
12pub struct StatusArgs {
13    /// Output in JSON format.
14    #[arg(long)]
15    pub json: bool,
16}
17
18pub fn run(args: &StatusArgs, endpoint: &Endpoint) -> CliResult {
19    let mut client = ControlPlaneClient::connect_endpoint(endpoint)?;
20    let result = client.call("engine.status", serde_json::Value::Null)?;
21    if args.json {
22        println!("{}", serde_json::to_string_pretty(&result)?);
23    } else {
24        print!("{}", output::format_status(&result));
25    }
26    Ok(())
27}