use serde_json::Value;
use crate::client::CellosClient;
use crate::exit::{CtlError, CtlResult};
pub async fn run(client: &CellosClient) -> CtlResult<()> {
println!("client: cellctl {}", env!("CARGO_PKG_VERSION"));
match client.get_json::<Value>("/v1/version").await {
Ok(v) => {
let svr = v
.get("version")
.and_then(|x| x.as_str())
.unwrap_or("unknown");
println!("server: cellos-server {svr} ({})", client.base_url());
Ok(())
}
Err(e) => {
Err(CtlError::api(format!(
"unable to connect to the server: {e}"
)))
}
}
}