From d66927f5fe32c1fc554bed691ad66dbbf07d37da Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Sat, 2 Nov 2024 01:25:24 -0400 Subject: Bug fixes: * Remove PATH modification from check_pathvar * Rename check_pathvar to check_system_path * Add conda_prepend_bin function to handle PATH modification during activation * Add logic to handle first-run activation, and subsequent calls to change conda environments (otherwise conda clobbers its own shell functions) * Use $CONDA_PYTHON_EXE and $CONDA_EXE to ensure conda comes from the just-installed tree --- src/cli/stasis/stasis_main.c | 3 ++- src/cli/stasis/system_requirements.c | 7 +------ src/cli/stasis/system_requirements.h | 2 +- 3 files changed, 4 insertions(+), 8 deletions(-) (limited to 'src/cli') diff --git a/src/cli/stasis/stasis_main.c b/src/cli/stasis/stasis_main.c index cda5fa6..e188b2e 100644 --- a/src/cli/stasis/stasis_main.c +++ b/src/cli/stasis/stasis_main.c @@ -133,6 +133,8 @@ int main(int argc, char *argv[]) { printf(BANNER, VERSION, AUTHOR); + check_system_path(); + msg(STASIS_MSG_L1, "Setup\n"); tpl_setup_vars(&ctx); @@ -241,7 +243,6 @@ int main(int argc, char *argv[]) { msg(STASIS_MSG_L2, "Installing: %s\n", ctx.conda.installer_name); delivery_install_conda(ctx.conda.installer_path, ctx.storage.conda_install_prefix); - check_pathvar(&ctx); msg(STASIS_MSG_L2, "Configuring: %s\n", ctx.storage.conda_install_prefix); delivery_conda_enable(&ctx, ctx.storage.conda_install_prefix); diff --git a/src/cli/stasis/system_requirements.c b/src/cli/stasis/system_requirements.c index 53ebbf7..d8d7df3 100644 --- a/src/cli/stasis/system_requirements.c +++ b/src/cli/stasis/system_requirements.c @@ -67,16 +67,11 @@ void check_requirements(struct Delivery *ctx) { check_system_env_requirements(); } -void check_pathvar(struct Delivery *ctx) { +void check_system_path() { char *pathvar = NULL; pathvar = getenv("PATH"); if (!pathvar) { msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "PATH variable is not set. Cannot continue.\n"); exit(1); - } else { - char pathvar_tmp[STASIS_BUFSIZ]; - sprintf(pathvar_tmp, "%s/bin:%s", ctx->storage.conda_install_prefix, pathvar); - setenv("PATH", pathvar_tmp, 1); - pathvar = NULL; } } \ No newline at end of file diff --git a/src/cli/stasis/system_requirements.h b/src/cli/stasis/system_requirements.h index 3a6fa25..ddc2705 100644 --- a/src/cli/stasis/system_requirements.h +++ b/src/cli/stasis/system_requirements.h @@ -5,9 +5,9 @@ #include "callbacks.h" #include "envctl.h" +void check_system_path(); void check_system_env_requirements(); void check_system_requirements(struct Delivery *ctx); void check_requirements(struct Delivery *ctx); -void check_pathvar(struct Delivery *ctx); #endif //STASIS_SYSTEM_REQUIREMENTS_H -- cgit