aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2024-10-28 13:23:41 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2024-10-28 13:23:41 -0400
commit36f3a828dd068c50b84815a02ad66e6616c8fdaf (patch)
tree62e1088cf1d6eca113ccb1f0e04b4c916c2e1c11 /src
parent4f24068ea3319f3e156431753064527cb695995c (diff)
downloadstasis-36f3a828dd068c50b84815a02ad66e6616c8fdaf.tar.gz
Workaround for latest conda regression
* profile.d/{conda,mamba}.sh don't set PATH so "import conda" and "import mamba" fail when conda is invoked. Fantastic. * Put conda's python interpreter on the PATH before using conda for the first time
Diffstat (limited to 'src')
-rw-r--r--src/lib/core/conda.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lib/core/conda.c b/src/lib/core/conda.c
index 5954f20..c2cea0e 100644
--- a/src/lib/core/conda.c
+++ b/src/lib/core/conda.c
@@ -218,11 +218,13 @@ int conda_activate(const char *root, const char *env_name) {
const char *init_script_mamba = "/etc/profile.d/mamba.sh";
char path_conda[PATH_MAX] = {0};
char path_mamba[PATH_MAX] = {0};
+ char path_bin[PATH_MAX] = {0};
char logfile[PATH_MAX] = {0};
struct Process proc;
memset(&proc, 0, sizeof(proc));
// Where to find conda's init scripts
+ sprintf(path_bin, "%s/bin", root);
sprintf(path_conda, "%s%s", root, init_script_conda);
sprintf(path_mamba, "%s%s", root, init_script_mamba);
@@ -256,7 +258,7 @@ int conda_activate(const char *root, const char *env_name) {
// Fully activate conda and record its effect on the runtime environment
char command[PATH_MAX * 3];
- snprintf(command, sizeof(command) - 1, "set -a; source %s; source %s; conda activate %s &>/dev/null; env -0", path_conda, path_mamba, env_name);
+ snprintf(command, sizeof(command) - 1, "set -a; source %s; source %s; PATH=\"%s:$PATH\" conda activate %s &>/dev/null; env -0", path_conda, path_mamba, path_bin, env_name);
int retval = shell(&proc, command);
if (retval) {
// it didn't work; drop out for cleanup