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