aboutsummaryrefslogtreecommitdiff
path: root/src/cli.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-04-29 23:24:36 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-04-29 23:24:36 +0300
commitc950670dca4983160085b140c125b8ca6d78dd09 (patch)
tree3c662cfe25bdfbe4489ceeb9e5373e746d717de7 /src/cli.rs
parenteec56a56a9f891de7a130536044a3ff875af0567 (diff)
fix: run integration commands without server
Diffstat (limited to 'src/cli.rs')
-rw-r--r--src/cli.rs67
1 files changed, 26 insertions, 41 deletions
diff --git a/src/cli.rs b/src/cli.rs
index 13482e69..1260ee6f 100644
--- a/src/cli.rs
+++ b/src/cli.rs
@@ -6,12 +6,11 @@ use serde::Serialize;
use crate::api;
use crate::api::schema::{
- AgentStatus, EmptyParams, IntegrationInstallParams, IntegrationTarget,
- IntegrationUninstallParams, Method, OutputMatch, PaneListParams, PaneReadParams,
- PaneSendInputParams, PaneSendKeysParams, PaneSendTextParams, PaneSplitParams, PaneTarget,
- PaneWaitForOutputParams, PingParams, ReadSource, Request, SplitDirection, Subscription,
- TabCreateParams, TabListParams, TabRenameParams, TabTarget, WorkspaceCreateParams,
- WorkspaceRenameParams, WorkspaceTarget,
+ AgentStatus, EmptyParams, IntegrationTarget, Method, OutputMatch, PaneListParams,
+ PaneReadParams, PaneSendInputParams, PaneSendKeysParams, PaneSendTextParams, PaneSplitParams,
+ PaneTarget, PaneWaitForOutputParams, PingParams, ReadSource, Request, SplitDirection,
+ Subscription, TabCreateParams, TabListParams, TabRenameParams, TabTarget,
+ WorkspaceCreateParams, WorkspaceRenameParams, WorkspaceTarget,
};
pub enum CommandOutcome {
@@ -962,26 +961,16 @@ fn integration_install(args: &[String]) -> std::io::Result<i32> {
return Ok(2);
};
- let response = send_request(&Request {
- id: "cli:integration:install".into(),
- method: Method::IntegrationInstall(IntegrationInstallParams { target }),
- })?;
-
- if let Some(error) = response.get("error") {
- eprintln!("{}", serde_json::to_string(error).unwrap());
- return Ok(1);
- }
-
- let Some(messages) = response["result"]["details"]["messages"].as_array() else {
- eprintln!("invalid integration install response");
- return Ok(1);
- };
-
- for message in messages.iter().filter_map(|entry| entry.as_str()) {
- println!("{message}");
+ match crate::integration::install_target(target) {
+ Ok(messages) => {
+ print_integration_messages(messages);
+ Ok(0)
+ }
+ Err(err) => {
+ eprintln!("{err}");
+ Ok(1)
+ }
}
-
- Ok(0)
}
fn integration_uninstall(args: &[String]) -> std::io::Result<i32> {
@@ -989,26 +978,22 @@ fn integration_uninstall(args: &[String]) -> std::io::Result<i32> {
return Ok(2);
};
- let response = send_request(&Request {
- id: "cli:integration:uninstall".into(),
- method: Method::IntegrationUninstall(IntegrationUninstallParams { target }),
- })?;
-
- if let Some(error) = response.get("error") {
- eprintln!("{}", serde_json::to_string(error).unwrap());
- return Ok(1);
+ match crate::integration::uninstall_target(target) {
+ Ok(messages) => {
+ print_integration_messages(messages);
+ Ok(0)
+ }
+ Err(err) => {
+ eprintln!("{err}");
+ Ok(1)
+ }
}
+}
- let Some(messages) = response["result"]["details"]["messages"].as_array() else {
- eprintln!("invalid integration uninstall response");
- return Ok(1);
- };
-
- for message in messages.iter().filter_map(|entry| entry.as_str()) {
+fn print_integration_messages(messages: Vec<String>) {
+ for message in messages {
println!("{message}");
}
-
- Ok(0)
}
fn parse_integration_target(