Skip to content

Commit 0ebdfd1

Browse files
committed
(tue-env) add include system sites arg for venv
1 parent 782b172 commit 0ebdfd1

File tree

1 file changed

+30
-20
lines changed

1 file changed

+30
-20
lines changed

setup/tue-env.bash

Lines changed: 30 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,10 @@ function tue-env
3838
# Make sure the correct directories are there
3939
mkdir -p "$TUE_DIR"/user/envs
4040

41-
local create_venv dir env_name targets_url show_help
41+
local create_venv dir env_name show_help targets_url venv_include_system_site_packages
4242
create_venv="false"
4343
show_help="false"
44+
venv_include_system_site_packages="false"
4445

4546
if [[ $cmd == "init" ]]
4647
then
@@ -55,6 +56,8 @@ function tue-env
5556
targets_url="${i#*=}" ;;
5657
--create-virtualenv=* )
5758
create_venv="${i#*=}" ;;
59+
--virtualenv-include-system-site-packages=* )
60+
venv_include_system_site_packages="${i#*=}" ;;
5861
--help )
5962
show_help="true" ;;
6063
* )
@@ -105,7 +108,7 @@ function tue-env
105108

106109
if [[ "${create_venv}" == "true" ]]
107110
then
108-
tue-env init-venv "${env_name}"
111+
tue-env init-venv "${env_name}" "${venv_include_system_site_packages}"
109112
fi
110113

111114
elif [[ $cmd == "remove" ]]
@@ -281,33 +284,35 @@ Environment directory '${dir}' didn't exist (anymore)"""
281284

282285
elif [[ $cmd == "init-venv" ]]
283286
then
284-
local env
285-
env=$1
286-
[ -n "${env}" ] || env=${TUE_ENV}
287-
288-
if [[ -z "${env}" ]]
287+
if [ -z "$1" ] || { [ -z "${TUE_ENV}" ] && [ -z "$2" ]; }
289288
then
290-
echo "[tue-env](init-venv) no environment set or provided"
291-
echo "Usage: tue-env init-venv [ NAME ]"
289+
echo "Usage: tue-env init-venv [ENVIRONMENT] INCLUDE_SYSTEM_SITE_PACKAGES"
292290
return 1
293291
fi
294292

295-
python3 -c "import virtualenv" 2>/dev/null ||
296-
{ echo -e "[tue-env](init-venv) 'virtualenv' module is not found. Make sure you install it 'sudo apt-get install python3-virtualenv'"; return 1; }
293+
local env venv_include_system_site_packages
294+
env=$1
295+
venv_include_system_site_packages=$2
296+
if [ -z "${venv_include_system_site_packages}" ]
297+
then
298+
env=${TUE_ENV}
299+
if [ -z "${env}" ]
300+
then
301+
# This shouldn't be possible logical, should have exited after printing usage
302+
echo "[tue-env](init-venv) no environment set or provided"
303+
return 1
304+
fi
305+
venv_include_system_site_packages=$1
306+
fi
307+
308+
/usr/bin/python3 -c "import virtualenv" 2>/dev/null ||
309+
{ echo "[tue-env](init-venv) 'virtualenv' module is not found. Make sure you install it 'sudo apt-get install python3-virtualenv'"; return 1; }
297310

298311
local tue_env_dir
299312
tue_env_dir=$(cat "${TUE_DIR}"/user/envs/"${env}")
300313
local venv_dir
301314
venv_dir=${tue_env_dir}/.venv/${env}
302315

303-
if [ -d "$tue_env_targets_dir" ]
304-
then
305-
local targets_dir_moved
306-
targets_dir_moved=$tue_env_targets_dir.$(date +%F_%R)
307-
mv -f "$tue_env_targets_dir" "$targets_dir_moved"
308-
echo "[tue-env] Moved old targets of environment '$env' to $targets_dir_moved"
309-
fi
310-
311316
if [[ -d "${venv_dir}" ]]
312317
then
313318
local venv_dir_moved
@@ -322,7 +327,12 @@ Environment directory '${dir}' didn't exist (anymore)"""
322327
echo "Don't use it anymore as its old path is hardcoded in the virtualenv"
323328
fi
324329

325-
python3 -m virtualenv "${venv_dir}" -q --system-site-packages --symlinks 2>/dev/null
330+
local system_site_args
331+
if [[ "${venv_include_system_site_packages}" == "true" ]]
332+
then
333+
system_site_args="--system-site-packages"
334+
fi
335+
/usr/bin/python3 -m virtualenv "${venv_dir}" -q "${system_site_args}" --symlinks 2>/dev/null
326336
echo "[tue-env] Initialized virtualenv of environment '${env}'"
327337

328338
if [ "${env}" == "${TUE_ENV}" ]

0 commit comments

Comments
 (0)