Skip to content

Commit ecf6fca

Browse files
committed
Move venv to inside .env folder
1 parent e4c21bd commit ecf6fca

File tree

3 files changed

+69
-11
lines changed

3 files changed

+69
-11
lines changed

installer/bootstrap.bash

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,24 @@ function installed_or_install
3535
return 0
3636
}
3737

38+
function python_install_desired_version
39+
{
40+
# python_install_desired_version package [version_requirement]
41+
if [[ -z "$1" ]]
42+
then
43+
echo "[tue-env](bootstrap) Error! No python package name provided to check for installation."
44+
return 1
45+
fi
46+
local package version_requirement
47+
package=$1
48+
[[ -n "$2" ]] && version_requirement=$2
49+
local installed_version
50+
installed_version=$(/usr/bin/python3 -c "import pkg_resources; print(pkg_resources.get_distribution('${package}').version)" 2>/dev/null)
51+
/usr/bin/python3 -c "import sys; from packaging.specifiers import SpecifierSet; from packaging.version import Version; sys.exit(Version('${installed_version}') not in SpecifierSet('${version_requirement}'))" 2> /dev/null && echo "${package}${version_requirement}: ${installed_version}" && return 0
52+
/usr/bin/python3 -m pip install "${package}${version_requirement}" || { echo "[tue-env](bootstrap) Error! Could not install '${package}${version_requirement}."; return 1; }
53+
return 0
54+
}
55+
3856
function file_exist_or_install
3957
{
4058
if [[ -z "$1" ]]
@@ -70,6 +88,7 @@ function main
7088
installed_or_install python3
7189
# Make sure python3-virtualenv is installed
7290
installed_or_install virtualenv python3-virtualenv
91+
python_install_desired_version virtualenv ">=20.24.0" # Prefer apt over pip
7392

7493
# Check if OS is Ubuntu
7594
local distrib_id distrib_release

setup.bash

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,13 @@ function _tue-env-main
8181

8282
# -----------------------------------------
8383
# Load the python virtual environment if it exists
84-
if [[ -d "${TUE_ENV_DIR}"/.venv/"${TUE_ENV}" ]]
84+
if [[ -d "${TUE_ENV_DIR}"/.env/venv/ ]]
8585
then
86+
# shellcheck disable=SC1091
87+
source "${TUE_ENV_DIR}"/.env/venv/bin/activate
88+
elif [[ -d "${TUE_ENV_DIR}"/.venv/"${TUE_ENV}" ]]
89+
then
90+
echo -e "\e[33;1m[tue] virtual environment location '${TUE_ENV_DIR}/.venv/${TUE_ENV}' is deprecated. Please create a new environment using 'tue-env init-venv ${TUE_ENV}'.\e[0m"
8691
# shellcheck disable=SC1090
8792
source "${TUE_ENV_DIR}"/.venv/"${TUE_ENV}"/bin/activate
8893
fi

setup/tue-env.bash

Lines changed: 44 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -586,20 +586,21 @@ Environment directory '${tue_env_dir}' didn't exist (anymore)"""
586586
fi
587587

588588
/usr/bin/python3 -c "import virtualenv" 2>/dev/null ||
589-
{ echo -e "[tue-env](init-venv) 'virtualenv' module is not found. Make sure you install it 'sudo apt-get install python3-virtualenv'"; return 1; }
589+
{ echo -e "[tue-env](init-venv) 'virtualenv' module is not found. Make sure you install it \"/usr/bin/python3 -m pip install --user 'virtualenv>=20.24.0'\""; return 1; }
590590

591591
[[ -f "${TUE_DIR}"/user/envs/"${tue_env}" ]] || { echo "[tue-env](init-venv) No such environment: '${tue_env}'"; return 1; }
592592
local tue_env_dir
593593
tue_env_dir=$(cat "${TUE_DIR}"/user/envs/"${tue_env}")
594594
[[ -d "${tue_env_dir}" ]] || { echo "[tue-env](init-venv) Environment directory '${tue_env_dir}' (environment '${tue_env}') does not exist"; return 1; }
595-
local venv_dir
596-
venv_dir=${tue_env_dir}/.venv/${tue_env}
595+
local venv_dir venv_dir_deprecated
596+
venv_dir=${tue_env_dir}/.env/venv
597+
venv_dir_deprecated=${tue_env_dir}/.venv/"${tue_env}"
597598

598599
if [[ -d "${venv_dir}" ]]
599600
then
600601
local venv_dir_moved
601602
venv_dir_moved=${venv_dir}.$(date +%F_%R)
602-
if [[ $(basename "${VIRTUAL_ENV}") == "${tue_env}" ]]
603+
if [[ "${VIRTUAL_ENV_PROMPT}" == "${tue_env}" ]]
603604
then
604605
echo "[tue-env](init-venv) deactivating currently active virtualenv of environment '${tue_env}'"
605606
deactivate
@@ -608,6 +609,19 @@ Environment directory '${tue_env_dir}' didn't exist (anymore)"""
608609
echo "[tue-env](init-venv) Moved old virtualenv of environment '${tue_env}' to ${venv_dir_moved}"
609610
echo "Don't use it anymore as its old path is hardcoded in the virtualenv"
610611
fi
612+
if [[ -d "${venv_dir_deprecated}" ]]
613+
then
614+
local venv_dir_deprecated_moved
615+
venv_dir_deprecated_moved=${venv_dir_deprecated}.$(date +%F_%R)
616+
if [[ $(basename "${VIRTUAL_ENV}") == "${tue_env}" ]]
617+
then
618+
echo "[tue-env](init-venv) deactivating currently active virtualenv of environment '${tue_env}'"
619+
deactivate
620+
fi
621+
mv -f "${venv_dir_deprecated}" "${venv_dir_deprecated_moved}"
622+
echo "[tue-env](init-venv) Moved old virtualenv of environment '${tue_env}' to ${venv_dir_deprecated_moved}"
623+
echo "Don't use it anymore as its old path is hardcoded in the virtualenv"
624+
fi
611625

612626
local system_site_args
613627
if [[ "${include_system_site}" == "true" ]]
@@ -619,16 +633,16 @@ Environment directory '${tue_env_dir}' didn't exist (anymore)"""
619633
then
620634
setuptools_args="--no-setuptools"
621635
fi
622-
/usr/bin/python3 -m virtualenv "${venv_dir}" ${system_site_args:+${system_site_args} }${setuptools_args:+${setuptools_args} }--symlinks -q 2>/dev/null
636+
/usr/bin/python3 -m virtualenv "${venv_dir}" ${system_site_args:+${system_site_args} }${setuptools_args:+${setuptools_args} }--symlinks --prompt "${tue_env}" -q 2>/dev/null
623637
echo "[tue-env](init-venv) Initialized virtualenv of environment '${tue_env}'"
624638

625639
if [ "${tue_env}" == "${TUE_ENV}" ]
626640
then
627641
# No need to check if the environment really exists, as it was checked before
628642
local tue_env_dir
629643
tue_env_dir=$(cat "${TUE_DIR}"/user/envs/"${tue_env}")
630-
# shellcheck disable=SC1090
631-
source "${tue_env_dir}"/.venv/"${tue_env}"/bin/activate
644+
# shellcheck disable=SC1091
645+
source "${tue_env_dir}"/.env/venv/bin/activate
632646
echo "[tue-env](init-venv) Activated new virtualenv of currently active environment '${tue_env}'"
633647
fi
634648

@@ -674,12 +688,14 @@ Environment directory '${tue_env_dir}' didn't exist (anymore)"""
674688
local tue_env_dir
675689
tue_env_dir=$(cat "${TUE_DIR}"/user/envs/"${tue_env}")
676690
[[ -d "${tue_env_dir}" ]] || { echo "[tue-env](rm-venv) Environment directory '${tue_env_dir}' (environment '${tue_env}') does not exist"; return 1; }
677-
local venv_dir
678-
venv_dir=${tue_env_dir}/.venv/${tue_env}
691+
local venv_dir venv_dir_deprecated
692+
venv_dir=${tue_env_dir}/.env/venv
693+
venv_dir_deprecated=${tue_env_dir}/.venv/"${tue_env}"
694+
679695

680696
if [[ -d "${venv_dir}" ]]
681697
then
682-
if [[ $(basename "${VIRTUAL_ENV}") == "${tue_env}" ]]
698+
if [[ "${VIRTUAL_ENV_PROMPT}" == "${tue_env}" ]]
683699
then
684700
echo "[tue-env](rm-venv) deactivating currently active virtualenv of environment '${tue_env}'"
685701
deactivate
@@ -695,6 +711,24 @@ Environment directory '${tue_env_dir}' didn't exist (anymore)"""
695711
mv -f "${venv_dir}" "${venv_dir_moved}"
696712
echo "[tue-env](rm-venv) Moved old virtualenv of environment '${tue_env}' to ${venv_dir_moved}"
697713
fi
714+
elif [[ -d "${venv_dir_deprecated}" ]]
715+
then
716+
if [[ $(basename "${VIRTUAL_ENV}") == "${tue_env}" ]]
717+
then
718+
echo "[tue-env](rm-venv) deactivating currently active virtualenv of environment '${tue_env}'"
719+
deactivate
720+
fi
721+
if [[ "${purge}" == "true" ]]
722+
then
723+
rm -rf "${venv_dir}"
724+
echo "[tue-env](rm-venv) Purged virtualenv of environment '${tue_env}'"
725+
return 0
726+
else
727+
local venv_dir_deprecated_moved
728+
venv_dir_deprecated_moved=${venv_dir_deprecated}.$(date +%F_%R)
729+
mv -f "${venv_dir_deprecated}" "${venv_dir_deprecated_moved}"
730+
echo "[tue-env](rm-venv) Moved old virtualenv of environment '${tue_env}' to ${venv_dir_deprecated_moved}"
731+
fi
698732
else
699733
echo "[tue-env](rm-venv) No virtualenv found for environment '${tue_env}'"
700734
fi

0 commit comments

Comments
 (0)