From 6a760e5794069cca6b596455c948c8e0bb2585cb Mon Sep 17 00:00:00 2001
From: Kostis Anagnostopoulos <ankostis@gmail.com>
Date: Tue, 17 May 2022 11:18:02 +0300
Subject: [PATCH] FIX(setup) properly override PATH & PYTHONPATH >

with conda (de)activation- scripts, to pick the actual var values.
---
 setup-account.sh | 33 ++++++++++++++++++++++++++++-----
 1 file changed, 28 insertions(+), 5 deletions(-)

diff --git a/setup-account.sh b/setup-account.sh
index 246db38..85b2909 100755
--- a/setup-account.sh
+++ b/setup-account.sh
@@ -228,11 +228,34 @@ function upd50_create_conda_env {
         _log "should take ~10' to create a conda-env@$conda_env_prefix..."
         conda env create -p "$conda_env_prefix" -f environment.yml
 
-        ## Setup any conda-env variables:
-        #  - PYTHONPATH pointing to project-root, to run scripts from there.
-        conda env config vars set -p $conda_env_prefix PATH="$mydir:conda_env_prefix/bin:$PATH"
-        conda env config vars set -p $conda_env_prefix PYTHONPATH="$mydir:$PYTHONPATH"
-       _log "ACTIVATE YOUR ENVIRONMENT with: conda activate $conda_env_prefix_rel"
+    fi
+
+    ## Setup any conda-env variables:
+    #  - make PATH & PYTHONPATH pointing to project-root,
+    #    to be able run & import scripts from anywhere.
+    if [ -f "$conda_env_prefix/etc/conda/activate.d/uds_vars.sh" ]; then
+        _log -e " OVERRIDE env_vars already ok: $conda_env_prefix/etc/conda/activate.d/uds_vars.sh
+        Delete this to re-run it to be effective."
+    else
+        _log "OVERRIDING env_vars..."
+        mkdir -p $conda_env_prefix/etc/conda/{,de}activate.d
+        cat > $conda_env_prefix/etc/conda/activate.d/uds_vars.sh <<- EOF
+#!/bin/sh
+
+export _UDS_OLD_PATH="\$PATH"
+export _UDS_OLD_PYTHONPATH="\$PYTHONPATH"
+export PATH="$mydir:\$PATH"
+export PYTHONPATH="$mydir:\$PYTHONPATH"
+EOF
+        cat > $conda_env_prefix/etc/conda/deactivate.d/uds_vars.sh <<- EOF
+#!/bin/sh
+
+export PATH="\$_UDS_OLD_PATH"
+export PYTHONPATH="\$_UDS_OLD_PYTHONPATH"
+unset _UDS_OLD_PATH
+unset _UDS_OLD_PYTHONPATH
+EOF
+          _log "ACTIVATE YOUR ENVIRONMENT with: conda activate $conda_env_prefix_rel"
     fi
 }
 
-- 
GitLab