From ce18d024a00c9875ce601a55a47a2c8d71344eb5 Mon Sep 17 00:00:00 2001 From: Sebastian Martinez Date: Wed, 7 May 2025 14:01:33 +0200 Subject: [PATCH] Add `check_radicle_cli` command We can check the Radicle home directory to see if the radicle binaries are installed in the `RAD_HOME` folder --- crates/radicle-tauri/src/commands/startup.rs | 10 ++++++++++ crates/radicle-tauri/src/lib.rs | 1 + crates/radicle-types/src/error.rs | 4 ++++ 3 files changed, 15 insertions(+) diff --git a/crates/radicle-tauri/src/commands/startup.rs b/crates/radicle-tauri/src/commands/startup.rs index b6898c7da..0ea8b3d62 100644 --- a/crates/radicle-tauri/src/commands/startup.rs +++ b/crates/radicle-tauri/src/commands/startup.rs @@ -42,6 +42,16 @@ pub(crate) fn version(app: AppHandle) -> Result { }) } +#[tauri::command] +pub(crate) fn check_radicle_cli(ctx: tauri::State) -> Result<(), Error> { + let rad = ctx.profile().home().path().join("bin/rad"); + if !rad.try_exists()? { + return Err(Error::RadicleNotInstalled); + } + + Ok(()) +} + #[tauri::command] pub(crate) fn startup(app: AppHandle) -> Result { let profile = radicle::Profile::load()?; diff --git a/crates/radicle-tauri/src/lib.rs b/crates/radicle-tauri/src/lib.rs index 6246b2a09..666b19235 100644 --- a/crates/radicle-tauri/src/lib.rs +++ b/crates/radicle-tauri/src/lib.rs @@ -59,6 +59,7 @@ pub fn run() { repo::repo_readme, startup::startup, startup::version, + startup::check_radicle_cli, thread::create_issue_comment, thread::create_patch_comment, ]) diff --git a/crates/radicle-types/src/error.rs b/crates/radicle-types/src/error.rs index 48761b0ed..df646c88e 100644 --- a/crates/radicle-types/src/error.rs +++ b/crates/radicle-types/src/error.rs @@ -11,6 +11,10 @@ pub enum Error { #[error(transparent)] ProfileError(#[from] radicle::profile::Error), + /// Radicle error. + #[error("radicle is not installed")] + RadicleNotInstalled, + /// Missing SSH Agent error. #[error("ssh agent not running")] AgentNotRunning,