DEBUG="n"
QUIET='n'
-VERSION="2.0"
+VERSION="2.1"
# console colors:
RED=""
PIP_OPTIONS=
export VIRTUAL_ENV_DISABLE_PROMPT=y
+declare -a VALID_PY_VERSIONS=("3.8" "3.7" "3.6" "3.5")
+PY_VERSION_FINAL=
+PYTHON=
+VENV_BIN='virtualenv'
+
#-------------------------------------------------------------------
detect_color() {
local tmp=
local short_options="dvqhV"
local long_options="debug,verbose,quiet,help,version"
+ local venv_found="n"
+ local py_version=
+ local py_found="n"
set +e
tmp=$( getopt -o "${short_options}" --long "${long_options}" -n "${BASENAME}" -- "$@" )
exit 1
fi
- if type -t virtualenv >/dev/null ; then
- :
+ py_found="n"
+ info "Searching for valid Python …"
+ for py_version in "${VALID_PY_VERSIONS[@]}" ; do
+ PYTHON="python${py_version}"
+ debug "Testing Python binary '${CYAN}${PYTHON}${NORMAL}' …"
+ if type -t ${PYTHON} >/dev/null ; then
+ py_found="y"
+ PY_VERSION_FINAL="${py_version}"
+ empty_line
+ info "Found '${GREEN}${PYTHON}${NORMAL}'."
+ break
+ fi
+ done
+
+ if [[ "${py_found}" == "n" ]] ; then
+ empty_line >&2
+ error "Did not found a usable Python version." >&2
+ error "Usable Python versions are: ${YELOW}${VALID_PY_VERSIONS[*]}${NORMAL}." >&2
+ empty_line >&2
+ exit 5
+ fi
+
+ venv_found="n"
+ info "Searching for valid virtualenv …"
+ VENV_BIN="virtualenv-${PY_VERSION_FINAL}"
+ debug "Testing '${VENV_BIN}' …"
+ if type -t ${VENV_BIN} >/dev/null ; then
+ venv_found="y"
else
- error "Command '${RED}virtualenv${NORMAL}' not found, please install package '${YELLOW}python-virtualenv${NORMAL}' or appropriate."
- exit 6
+ VENV_BIN="virtualenv"
+ debug "Testing '${VENV_BIN}' …"
+ if type -t ${VENV_BIN} >/dev/null ; then
+ venv_found="y"
+ else
+ empty_line >&2
+ error "Did not found a usable virtualenv." >&2
+ error "Command '${RED}virtualenv${NORMAL}' not found, please install package '${YELLOW}python-virtualenv${NORMAL}' or appropriate."
+ empty_line >&2
+ exit 6
+ fi
fi
+ info "Found '${GREEN}${VENV_BIN}${NORMAL}'."
if type -t msgfmt >/dev/null ; then
:
#------------------------------------------------------------------------------
init_venv() {
- local -a valid_py_versions=("3.8" "3.7" "3.6" "3.5")
- local py_version=
- local python=
- local found="n"
-
empty_line
line
info "Preparing virtual environment …"
if [[ ! -f venv/bin/activate ]] ; then
- found="n"
- for py_version in "${valid_py_versions[@]}" ; do
- python="python${py_version}"
- debug "Testing Python binary '${CYAN}${python}${NORMAL}' …"
- if type -t ${python} >/dev/null ; then
- found="y"
- empty_line
- info "Found '${GREEN}${python}${NORMAL}'."
- empty_line
- virtualenv --python=${python} venv
- break
- fi
- done
- if [[ "${found}" == "n" ]] ; then
- empty_line >&2
- error "Did not found a usable Python version." >&2
- error "Usable Python versions are: ${YELOW}${valid_py_versions[*]}${NORMAL}." >&2
- empty_line >&2
- exit 5
+
+ empty_line
+ if [[ "${VENV_BIN}" == 'virtualenv' ]] ; then
+ virtualenv --python=${PYTHON} venv
+ else
+ ${VENV_BIN} venv
fi
+
fi
. venv/bin/activate || exit 5