diff options
Diffstat (limited to 'src/integration/actions.rs')
| -rw-r--r-- | src/integration/actions.rs | 49 |
1 files changed, 45 insertions, 4 deletions
diff --git a/src/integration/actions.rs b/src/integration/actions.rs index ea732891..807ceeb6 100644 --- a/src/integration/actions.rs +++ b/src/integration/actions.rs @@ -3,10 +3,11 @@ use std::io; use super::registry::{integration_target_label, integration_target_supported}; use super::targets::{ install_claude, install_codex, install_copilot, install_cursor, install_devin, install_droid, - install_hermes, install_kilo, install_kimi, install_omp, install_opencode, install_pi, - install_qodercli, uninstall_claude, uninstall_codex, uninstall_copilot, uninstall_cursor, - uninstall_devin, uninstall_droid, uninstall_hermes, uninstall_kilo, uninstall_kimi, - uninstall_omp, uninstall_opencode, uninstall_pi, uninstall_qodercli, + install_hermes, install_kilo, install_kimi, install_mastracode, install_omp, install_opencode, + install_pi, install_qodercli, uninstall_claude, uninstall_codex, uninstall_copilot, + uninstall_cursor, uninstall_devin, uninstall_droid, uninstall_hermes, uninstall_kilo, + uninstall_kimi, uninstall_mastracode, uninstall_omp, uninstall_opencode, uninstall_pi, + uninstall_qodercli, }; use super::version::{agent_version_requirement, enforce_agent_version}; use super::{KIMI_MIN_VERSION, PI_EXTENSION_INSTALL_NAME}; @@ -190,6 +191,19 @@ fn install_target_inner(target: crate::api::schema::IntegrationTarget) -> io::Re format!("updated cursor hooks at {}", installed.hooks_path.display()), ] } + crate::api::schema::IntegrationTarget::Mastracode => { + let installed = install_mastracode()?; + vec![ + format!( + "installed mastracode integration hook to {}", + installed.hook_path.display() + ), + format!( + "ensured mastracode hooks at {}", + installed.hooks_path.display() + ), + ] + } }; if let Some(warning) = version_warning { @@ -517,6 +531,33 @@ pub(crate) fn uninstall_target( } messages } + crate::api::schema::IntegrationTarget::Mastracode => { + let result = uninstall_mastracode()?; + let mut messages = Vec::new(); + if result.removed_hook_file { + messages.push(format!( + "removed mastracode hook at {}", + result.hook_path.display() + )); + } else { + messages.push(format!( + "no mastracode hook found at {}", + result.hook_path.display() + )); + } + if result.updated_hooks { + messages.push(format!( + "removed herdr mastracode hook entries from {}", + result.hooks_path.display() + )); + } else { + messages.push(format!( + "no herdr mastracode hook entries found in {}", + result.hooks_path.display() + )); + } + messages + } }; crate::logging::integration_action("uninstall", integration_target_label(target), "ok"); |
