youqu/env.sh

184 lines
5.4 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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}
pipenv run pip 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} -i ${pypi_mirror}
done
fi
pipenv run pip install -U auto_uos --extra-index-url ${pypi_mirror} -i http://10.20.52.221:8081 --trusted-host=10.20.52.221 > /tmp/env.log 2>&1
check_status auto_uos
pip_show=$(pipenv run pip show auto_uos | grep Location)
public_location=$(echo "${pip_show}" | cut -d ":" -f2 | python3 -c "s=input();print(s.strip())")
sudo rm -rf ${ROOT_DIR}/public
sudo cp -r ${public_location}/auto_uos ${ROOT_DIR}/public
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