forked from linuxdeepin/youqu
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathenv.sh
175 lines (163 loc) · 5 KB
/
env.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
#!/bin/bash
# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
# SPDX-License-Identifier: GPL-2.0-only
source ./_env_base.sh
echo "
██╗ ██╗ ██████╗ ███████╗ ███╗ ██╗ ██╗ ██╗
╚██╗ ██╔╝ ██╔═══██╗ ██╔════╝ ████╗ ██║ ██║ ██║
╚████╔╝ ██║ ██║ █████╗ ██╔██╗ ██║ ██║ ██║
╚██╔╝ ██║▄▄ ██║ ██╔══╝ ██║╚██╗██║ ╚██╗ ██╔╝
██║ ╚██████╔╝ ███████╗ ██║ ╚████║ ╚████╔╝
╚═╝ ╚══▀▀═╝ ╚══════╝ ╚═╝ ╚═══╝ ╚═══╝
${tag}
"
env(){
sudo apt update
deb_array=(
python3-pip
python3-tk
sshpass
scrot
openjdk-8-jdk
gir1.2-atspi-2.0
libatk-adaptor
at-spi2-core
python3-opencv
)
# 裁剪基础环境
cd ${ROOT_DIR}/src/utils
BASICENV=$(python3 sub_env_cut.py)
if [ "${BASICENV}" = "BASICENV" ]; then
ENV_CUT_FLAG="cut"
deb_array=(
python3-pip
sshpass
openjdk-8-jdk
)
fi
echo -e "${flag_feel}安装 deb 包\n"
for deb in ${deb_array[*]}
do
sudo apt install -y ${deb} > /tmp/env.log 2>&1
check_status ${deb}
done
if [ "${DISPLAY_SERVER}" = "wayland" ]; then
wayland_env
fi
}
env
if [ "${env_retry}" = "true" ]; then
source /etc/os-release
if [ "${NAME}" = "Deepin" ]; then
community_sources_list
else
sources_list
fi
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
sudo cp sources.list /etc/apt/sources.list && rm -rf sources.list
# 替换源之后再执行
env
sudo mv /etc/apt/sources.list.bak /etc/apt/sources.list
fi
echo -e "${flag_feel}安装 pip 包\n"
sudo pip3 config set global.timeout 10000 > /tmp/env.log 2>&1
sudo pip3 config set global.index-url ${pypi_mirror} > /tmp/env.log 2>&1
sudo pip3 config set global.extra-index-url https://it.uniontech.com/nexus/repository/pypi-public/simple
sudo pip3 install pipenv > /tmp/env.log 2>&1
if [ $? = 0 ]; then
echo -e "pipenv\t安装成功 √"
else
echo -e "pipenv\t安装失败 ×"
cat /tmp/env.log
exit 520
fi
cd ${ROOT_DIR}/
pipenv --python 3.7 > /tmp/env.log 2>&1
if [ $? != 0 ]; then
echo -e "AT环境创建失败"
exit 521
fi
python_virtualenv_path=$(pipenv --venv)
whitelist_path=`echo "${python_virtualenv_path}" | sed "s/\/home\/$USER\//\//"`
result=`sudo cat ${whitelist} | grep ${whitelist_path}`
if [ -z "$result" ]; then
sudo sed -i '$a\'"${whitelist_path}"'' ${whitelist}
sudo sed -i '$a\'"${python_virtualenv_path}"'' ${whitelist}
sudo systemctl restart deepin-elf-verify.service || true
fi
py_debs=(
python3-gi
python3-pyatspi
python3-dbus
python3-cairo
python3-pil
python3-ptyprocess
python3-pexpect
python3-numpy
python3-opencv
)
for pd in ${py_debs[*]}
do
rm -rf ${pd}*
apt download ${pd} > /tmp/env.log 2>&1
if [ $? != 0 ]; then
cat /tmp/env.log
exit 520
fi
dpkg -x ${pd}*.deb ${pd}
cp -r ./${pd}/usr/lib/python3/dist-packages/* ${python_virtualenv_path}/lib/python3.7/site-packages/
rm -rf ${pd}*
done
apt download python3-gi-cairo > /tmp/env.log 2>&1
dpkg -x python3-gi-cairo*.deb python3-gi-cairo
cp -r ./python3-gi-cairo//usr/lib/python3/dist-packages/gi/* ${python_virtualenv_path}/lib/python3.7/site-packages/gi/
rm -rf python3-gi-cairo*
pip_array=(
pyscreeze==0.1.28
PyAutoGUI==0.9.53
pytest==6.2.5
pytest-rerunfailures==10.2
pytest-timeout==2.1.0
allure-pytest==2.9.45
funnylog
pdocr-rpc
image-center
allure-custom
letmego
)
if [ "${ENV_CUT_FLAG}" = "cut" ]; then
pip_array=(
pytest==6.2.5
pytest-rerunfailures==10.2
pytest-timeout==2.1.0
allure-pytest==2.9.45
allure-custom
funnylog
)
fi
for p in ${pip_array[*]}
do
pipenv run pip install ${p} -i ${pypi_mirror} > /tmp/env.log 2>&1
check_status ${p}
pip3 list | grep -v grep | grep ${p}
done
echo "${PASSWORD}" | sudo -S su > /dev/null 2>&1
cd ${ROOT_DIR}/src/utils/
requirements=$(python3 sub_depends.py)
if [ "${requirements}" != "" ]; then
echo -e "\n应用库依赖:\n${requirements}\n"
for requirement in ${requirements[*]}
do
echo -e "${flag_feel}安装应用库依赖: ${requirement}"
pipenv run pip install -r ${requirement}
done
fi
rm -rf Pipfile
echo "${python_virtualenv_path}"
pipenv run pip list
system_env
echo "pipenv run python \$*" | sudo tee /usr/bin/youqu > /dev/null 2>&1
echo "pipenv shell" | sudo tee /usr/bin/youqu-shell > /dev/null 2>&1
sudo chmod +x /usr/bin/youqu
sudo chmod +x /usr/bin/youqu-shell
cd ${ROOT_DIR};youqu manage.py run -h