1use crate::protocol::{Request, Response};
2
3pub async fn execute(session: &str, command: &str, name: Option<String>) -> i32 {
4 let req = Request::Run { command: command.into(), name, cwd: None, env: None };
5 match crate::cli::request(session, &req, true).await {
6 Ok(Response::RunOk { name, id, pid }) => { println!("{} (id: {}, pid: {})", name, id, pid); 0 }
7 Ok(Response::Error { code, message }) => { eprintln!("error: {}", message); code }
8 Ok(_) => { eprintln!("unexpected response"); 1 }
9 Err(e) => { eprintln!("error: {}", e); 1 }
10 }
11}