use anyhow::{Result, bail};
use crate::cli::RemoteButton;
use crate::executor::Executor;
use crate::ipc::{Request, Response};
pub async fn run(exec: &Executor, button: &RemoteButton, json: bool) -> Result<()> {
let request = Request::RemoteButton {
button: button.to_ipc_string().to_string(),
};
let response = exec.send_request(request).await?;
match &response {
Response::Ok { data } => {
if json {
println!("{}", serde_json::to_string_pretty(data)?);
} else {
println!("Sent button press.");
}
}
Response::Error { message } => bail!("{message}"),
Response::TvDisconnected { message } => bail!("{message}"),
}
Ok(())
}