25
25
cd " $( dirname " $0 " ) " || exit 1
26
26
SUDO=" $( which sudo 2> /dev/null) "
27
27
abort () {
28
+ [ " $1 " ] && echo " ERROR: $1 "
28
29
echo " Dependencies: an error has occurred, exit"
29
30
exit 1
30
31
}
@@ -49,6 +50,7 @@ check_dependencies() {
49
50
command -v unzip > /dev/null 2>&1 || NEED_INSTALL+=(" unzip" )
50
51
command -v qemu-img > /dev/null 2>&1 || NEED_INSTALL+=(" qemu-utils" )
51
52
command -v sudo > /dev/null 2>&1 || NEED_INSTALL+=(" sudo" )
53
+ python3 -c " import venv" > /dev/null 2>&1 || NEED_INSTALL+=(" python3-venv" )
52
54
}
53
55
check_dependencies
54
56
osrel=$( sed -n ' /^ID_LIKE=/s/^.*=//p' /etc/os-release)
@@ -116,6 +118,7 @@ if [ -n "${NEED_INSTALL[*]}" ]; then
116
118
NEED_INSTALL_FIX=${NEED_INSTALL_FIX// setools/ setools-console} 2>&1
117
119
NEED_INSTALL_FIX=${NEED_INSTALL_FIX// whiptail/ dialog} 2>&1
118
120
NEED_INSTALL_FIX=${NEED_INSTALL_FIX// qemu-utils/ qemu-tools} 2>&1
121
+ NEED_INSTALL_FIX=${NEED_INSTALL_FIX// python3-venv/ python3-venvctrl} 2>&1
119
122
} >> /dev/null
120
123
121
124
readarray -td ' ' NEED_INSTALL <<< " $NEED_INSTALL_FIX "
@@ -128,5 +131,15 @@ if [ -n "${NEED_INSTALL[*]}" ]; then
128
131
if ! ($SUDO " $PM " " ${INSTALL_OPTION[@]} " " ${NEED_INSTALL[@]} " ); then abort; fi
129
132
130
133
fi
131
-
132
- python3 -m pip install -r requirements.txt -q
134
+ PYTHON_VENV_DIR=" $( dirname " $PWD " ) /python3-env"
135
+ [ -f " $PYTHON_VENV_DIR /bin/activate" ] || {
136
+ echo " Creating python3 virtual env"
137
+ python3 -m venv " $PYTHON_VENV_DIR " || abort " Failed to create python3 virtual env"
138
+ }
139
+ # shellcheck disable=SC1091
140
+ source " $PYTHON_VENV_DIR " /bin/activate || abort " Failed to activate python3 virtual env"
141
+ python3 -c " import pkg_resources; pkg_resources.require(open('requirements.txt',mode='r'))" & > /dev/null || {
142
+ echo " Installing Python3 dependencies"
143
+ python3 -m pip install -r requirements.txt || abort " Failed to install python3 dependencies"
144
+ }
145
+ deactivate
0 commit comments