# 1. --venv-file <path/to/file> as lf_venv
# 2. default: "/tmp/.os_lf_venv"
# - Create new venv when 1. and 2. is absent
- if [ -f "$venv_file" ]; then
+ if [[ -f "$venv_file" ]]; then
lf_venv=$(cat "$venv_file")
echo "${FUNCNAME[0]}(): INFO: Reuse venv:$lf_venv from" \
"file:$venv_file"
- elif [ ! -f "$venv_file" ]; then
- $python -m venv "$install_args" "$lf_venv" || return 1
+ elif [[ ! -f "$venv_file" ]]; then
+ if [[ -n "$install_args" ]]; then
+ $python -m venv "$install_args" "$lf_venv" || return 1
+ else
+ $python -m venv "$lf_venv" || return 1
+ fi
echo "${FUNCNAME[0]}(): INFO: Creating $python venv at $lf_venv"
echo "$lf_venv" > "$venv_file"
echo "${FUNCNAME[0]}(): INFO: Save venv in file: $venv_file"
"$lf_venv/bin/pip" install --upgrade --quiet pip virtualenv || return 1
if [[ -z $pkg_list ]]; then
echo "${FUNCNAME[0]}(): WARNING: No packages to install"
- return 0
+ else
+ echo "${FUNCNAME[0]}(): INFO: Installing: $pkg_list"
+ # $pkg_list is expected to be unquoted
+ # shellcheck disable=SC2086
+ "$lf_venv/bin/pip" install --upgrade --quiet --upgrade-strategy eager \
+ $pkg_list || return 1
fi
- echo "${FUNCNAME[0]}(): INFO: Installing: $pkg_list"
- # $pkg_list is expected to be unquoted
- # shellcheck disable=SC2086
- "$lf_venv/bin/pip" install --upgrade --quiet --upgrade-strategy eager \
- $pkg_list || return 1
;;
*)
lf-echo-stderr "${FUNCNAME[0]}(): ERROR: No support for: $python"