From a2f12aef351f8d4b33a123563e851e0a71285b6c Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Thu, 26 Feb 2026 09:17:11 -0800 Subject: [PATCH] cli: use explicit flag for workspace plugin dir --- crates-cli/yaak-cli/src/context.rs | 34 ++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/crates-cli/yaak-cli/src/context.rs b/crates-cli/yaak-cli/src/context.rs index a895dc6c..1b56adcb 100644 --- a/crates-cli/yaak-cli/src/context.rs +++ b/crates-cli/yaak-cli/src/context.rs @@ -38,14 +38,9 @@ impl CliContext { let encryption_manager = Arc::new(EncryptionManager::new(query_manager.clone(), app_id)); let plugin_manager = if with_plugins { - let dev_mode = cfg!(debug_assertions); let embedded_vendored_plugin_dir = data_dir.join("vendored-plugins"); - let vendored_plugin_dir = if dev_mode { - resolve_workspace_plugins_dir() - .unwrap_or_else(|| embedded_vendored_plugin_dir.clone()) - } else { - embedded_vendored_plugin_dir.clone() - }; + let vendored_plugin_dir = + resolve_bundled_plugin_dir_for_cli(&embedded_vendored_plugin_dir); let installed_plugin_dir = data_dir.join("installed-plugins"); let node_bin_path = PathBuf::from("node"); @@ -147,3 +142,28 @@ fn resolve_workspace_plugins_dir() -> Option { .canonicalize() .ok() } + +fn resolve_bundled_plugin_dir_for_cli(embedded_vendored_plugin_dir: &Path) -> PathBuf { + if !use_workspace_plugins_for_cli_dev() { + return embedded_vendored_plugin_dir.to_path_buf(); + } + + resolve_workspace_plugins_dir().unwrap_or_else(|| { + panic!( + "YAAK_USE_WORKSPACE_PLUGINS is enabled, but ROOT/plugins could not be resolved" + ) + }) +} + +fn use_workspace_plugins_for_cli_dev() -> bool { + std::env::var("YAAK_USE_WORKSPACE_PLUGINS") + .ok() + .map(|v| { + let v = v.trim(); + v.eq_ignore_ascii_case("1") + || v.eq_ignore_ascii_case("true") + || v.eq_ignore_ascii_case("yes") + || v.eq_ignore_ascii_case("on") + }) + .unwrap_or(false) +}