diff --git a/crates/rattler_menuinst/src/linux.rs b/crates/rattler_menuinst/src/linux.rs index 3b81c0e487..24f7d619e4 100644 --- a/crates/rattler_menuinst/src/linux.rs +++ b/crates/rattler_menuinst/src/linux.rs @@ -11,7 +11,7 @@ use tempfile::TempDir; mod mime_config; use rattler_conda_types::Platform; -use rattler_shell::activation::{ActivationVariables, Activator}; +use rattler_shell::activation::{ActivationVariables, Activator, PathModificationBehavior}; use rattler_shell::shell; use crate::render::{BaseMenuItemPlaceholders, MenuItemPlaceholders, PlaceholderString}; @@ -300,7 +300,11 @@ impl LinuxMenu { if self.command.activate.unwrap_or(false) { // create a bash activation script and emit it into the script let activator = Activator::from_path(&self.prefix, shell::Bash, Platform::current())?; - let activation_env = activator.run_activation(ActivationVariables::default(), None)?; + let activation_variables = ActivationVariables { + path_modification_behavior: PathModificationBehavior::Prepend, + ..Default::default() + }; + let activation_env = activator.run_activation(activation_variables, None)?; for (k, v) in activation_env { envs.push(format!(r#"{k}="{v}""#)); diff --git a/crates/rattler_menuinst/src/macos.rs b/crates/rattler_menuinst/src/macos.rs index c2532ee9b3..efee24c688 100644 --- a/crates/rattler_menuinst/src/macos.rs +++ b/crates/rattler_menuinst/src/macos.rs @@ -10,7 +10,7 @@ use fs_err::File; use plist::Value; use rattler_conda_types::{menuinst::MacOsTracker, Platform}; use rattler_shell::{ - activation::{ActivationError, ActivationVariables, Activator}, + activation::{ActivationError, ActivationVariables, Activator, PathModificationBehavior}, shell, }; use sha2::{Digest as _, Sha256}; @@ -656,7 +656,11 @@ impl MacOSMenu { if self.command.activate.unwrap_or(false) { // create a bash activation script and emit it into the script let activator = Activator::from_path(&self.prefix, shell::Bash, Platform::current())?; - let activation_env = activator.run_activation(ActivationVariables::default(), None)?; + let activation_variables = ActivationVariables { + path_modification_behavior: PathModificationBehavior::Prepend, + ..Default::default() + }; + let activation_env = activator.run_activation(activation_variables, None)?; for (k, v) in activation_env { lines.push(format!(r#"export {k}="{v}""#)); diff --git a/crates/rattler_menuinst/src/windows.rs b/crates/rattler_menuinst/src/windows.rs index 65ab0616e8..7fa460330f 100644 --- a/crates/rattler_menuinst/src/windows.rs +++ b/crates/rattler_menuinst/src/windows.rs @@ -5,7 +5,7 @@ use rattler_conda_types::{ Platform, }; use rattler_shell::{ - activation::{ActivationVariables, Activator}, + activation::{ActivationVariables, Activator, PathModificationBehavior}, shell, }; use registry::{notify_shell_changes, FileExtension, UrlProtocol}; @@ -162,7 +162,11 @@ impl WindowsMenu { // create a bash activation script and emit it into the script let activator = Activator::from_path(&self.prefix, shell::CmdExe, Platform::current()).unwrap(); - let activation_env = activator.run_activation(ActivationVariables::default(), None)?; + let activation_variables = ActivationVariables { + path_modification_behavior: PathModificationBehavior::Prepend, + ..Default::default() + }; + let activation_env = activator.run_activation(activation_variables, None)?; for (k, v) in activation_env { lines.push(format!(r#"set "{k}={v}""#));