From d8b5d04a3f079d5363fb3e1419c290df32fb3f65 Mon Sep 17 00:00:00 2001 From: Rajat Jindal Date: Tue, 19 Dec 2023 07:10:05 +0530 Subject: [PATCH] print error msg when binary is missing Signed-off-by: Rajat Jindal --- src/commands/external.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/commands/external.rs b/src/commands/external.rs index c3a38856e0..357b26e102 100644 --- a/src/commands/external.rs +++ b/src/commands/external.rs @@ -2,6 +2,7 @@ use crate::build_info::*; use crate::commands::plugins::{update, Install}; use crate::opts::PLUGIN_OVERRIDE_COMPATIBILITY_CHECK_FLAG; use anyhow::{anyhow, Result}; +use spin_common::ui::quoted_path; use spin_plugins::{ badger::BadgerChecker, error::Error as PluginError, manifest::warn_unsupported_version, PluginStore, @@ -66,7 +67,16 @@ pub async fn execute_external_subcommand( ) .await?; - let mut command = Command::new(plugin_store.installed_binary_path(&plugin_name)); + let binary = plugin_store.installed_binary_path(&plugin_name); + if !binary.exists() { + return Err(anyhow!( + "plugin executable {} is missing. Try uninstalling and installing the plugin '{}' again.", + quoted_path(&binary), + plugin_name + )); + } + + let mut command = Command::new(binary); command.args(args); command.envs(get_env_vars_map()?);