Skip to content

Commit c748818

Browse files
authored
升级搭建脚本
首次自动执行安装python依赖,并运行T4的python环境
1 parent fe4dd5c commit c748818

File tree

1 file changed

+71
-19
lines changed

1 file changed

+71
-19
lines changed

autorun.sh

Lines changed: 71 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,27 @@ PH='\033[35m'
99
QS='\033[36m'
1010
NC='\033[0m' # No Color
1111

12-
echo -e "${PH}警告:此脚本只适用于Debian系列系统(包含Ubuntu),因为需要使用apt来安装软件。${NC}"
13-
echo -e "${PH}警告:此脚本只适用于Debian系列系统(包含Ubuntu),因为需要使用apt来安装软件。${NC}"
14-
echo -e "${PH}警告:此脚本只适用于Debian系列系统(包含Ubuntu),因为需要使用apt来安装软件。${NC}"
15-
echo -e "${YELLOW}警告:如果是群晖NAS自行安装node套件后同样可以使用脚本进行更新使用!!!${NC}"
16-
echo -e "${GREEN}警告:脚本自动更新需要自行添加任务计划设定运行时间!!!${NC}"
12+
# 检查当前用户是否为root用户
13+
if [ "$(id -u)" -ne 0 ]; then
14+
echo -e "${RED}错误:此脚本需要以root用户身份运行。${NC}"
15+
exit 1
16+
fi
17+
18+
# 确认提示
19+
echo -e "${PH}======================================================================${NC}"
20+
echo -e "${PH} 警告:此脚本只适用于群晖、Debian系列系统(包含Ubuntu、Fnos)。${NC}"
21+
echo -e "${YELLOW} 警告:群晖NAS自行安装node套件后使用!!!${NC}"
22+
echo -e "${GREEN} 警告:脚本自动更新需要自行添加任务计划设定运行时间!!!${NC}"
23+
echo -e "${PH}======================================================================${NC}"
24+
echo -ne "${PH}您是否理解并同意继续?(y/n) 默认10秒后确认(y): ${NC}"
25+
read -t 10 confirm
26+
confirm=${confirm:-"y"}
27+
if [[ "$confirm" != "y" ]]; then
28+
echo -e "${RED}用户取消操作。${NC}"
29+
exit 1
30+
fi
31+
echo
32+
1733
# 检查是否为群晖系统
1834
is_syno_system() {
1935
# 群晖系统通常会有 /etc.defaults/VERSION 文件
@@ -189,7 +205,9 @@ create_env_json() {
189205
"quark_cookie": "",
190206
"uc_cookie": "",
191207
"bili_cookie": "",
192-
"thread": "10"
208+
"thread": "10",
209+
"enable_dr2": "1",
210+
"enable_py": "2"
193211
}
194212
EOF
195213
if [ $? -eq 0 ]; then
@@ -234,28 +252,28 @@ initialize_default_env() {
234252
echo -e "${YELLOW}.env文件不存在,正在使用.env.development作为模板创建...${NC}"
235253
# 提示用户输入自定义值,并设置30秒超时
236254
echo -ne "${YELLOW}请输入网盘入库密码(30秒内无输入则使用默认值'drpys'直接回车可跳过):${NC}"
237-
read -t 30 dir_path
255+
read -t 30 cookie_auth_code
238256
echo
239257
if [ -z "$cookie_auth_code" ]; then
240258
cookie_auth_code="drpys"
241259
fi
242260

243261
echo -ne "${YELLOW}请输入登录用户名(30秒内无输入则使用默认值'admin'直接回车可跳过):${NC}"
244-
read -t 30 dir_path
262+
read -t 30 api_auth_name
245263
echo
246264
if [ -z "$api_auth_name" ]; then
247265
api_auth_name="admin"
248266
fi
249267

250268
echo -ne "${YELLOW}请输入登录密码(30秒内无输入则使用默认值'drpys'直接回车可跳过):${NC}"
251-
read -t 30 dir_path
269+
read -t 30 api_auth_code
252270
echo
253271
if [ -z "$api_auth_code" ]; then
254272
api_auth_code="drpys"
255273
fi
256274

257275
echo -ne "${YELLOW}请输入订阅PWD值(30秒内无输入则使用默认值'dzyyds'直接回车可跳过):${NC}"
258-
read -t 30 dir_path
276+
read -t 30 api_pwd
259277
echo
260278
if [ -z "$api_pwd" ]; then
261279
api_pwd="dzyyds"
@@ -329,7 +347,12 @@ else
329347
echo -e "${YELLOW}正在执行yarn..."
330348
yarn config set registry https://registry.npmmirror.com/
331349
yarn
332-
echo -e "${GREEN}yarn执行成功,正在启动应用...${NC}"
350+
echo -e "${GREEN}yarn执行成功,开始安装python环境...${NC}"
351+
python3 -m venv $REPO_DIR/$PROJECT_NAME/.venv
352+
source $REPO_DIR/$PROJECT_NAME/.venv/bin/activate
353+
VIRTUAL_ENV=$REPO_DIR/$PROJECT_NAME/.venv
354+
pip install -r spider/py/base/requirements.txt -i https://mirrors.cloud.tencent.com/pypi/simple
355+
echo -e "${GREEN}python执行成功,开始启动项目...${NC}"
333356
pm2 start index.js --name drpyS
334357
pm2 save
335358
pm2 startup
@@ -346,7 +369,7 @@ else
346369
fi
347370

348371
# 定义备份函数
349-
backup_files_and_cookie_auth_code() {
372+
backup_files() {
350373
# 备份前先检查文件是否存在,不存在则自动创建
351374
create_env_json "$REPO_DIR/$PROJECT_NAME"
352375
create_default_env "$REPO_DIR/$PROJECT_NAME"
@@ -366,7 +389,7 @@ backup_files_and_cookie_auth_code() {
366389
echo -e "${YELLOW}正在备份.env文件...${NC}"
367390
cp ".env" "./$env_backup_file"
368391
if [ $? -eq 0 ]; then
369-
echo -e "${YELLOW}.env文件已备份为 $env_backup_file${NC}"
392+
echo -e "${GREEN}.env文件已备份为 $env_backup_file${NC}"
370393
else
371394
echo -e "${RED}备份.env文件失败。${NC}"
372395
exit 1
@@ -383,7 +406,7 @@ backup_files_and_cookie_auth_code() {
383406
echo -e "${RED}备份map.txt文件失败。${NC}"
384407
exit 1
385408
fi
386-
409+
387410
# 备份parses.conf文件
388411
local parses_conf_path="$REPO_DIR/$PROJECT_NAME/config/parses.conf"
389412
local parses_conf_backup_file="parses.conf.backup_$(date +%Y%m%d)"
@@ -395,10 +418,22 @@ backup_files_and_cookie_auth_code() {
395418
echo -e "${RED}备份parses.conf文件失败。${NC}"
396419
exit 1
397420
fi
421+
422+
# 备份order_common.example.html文件
423+
local order_common_example_path="$REPO_DIR/$PROJECT_NAME/public/sub/order_common.example.html"
424+
local order_common_example_backup_file="order_common.example.html.backup_$(date +%Y%m%d)"
425+
echo -e "${YELLOW}正在备份order_common.example.html文件...${NC}"
426+
cp "$order_common_example_path" "./$order_common_example_backup_file"
427+
if [ $? -eq 0 ]; then
428+
echo -e "${GREEN}order_common.example.html文件已备份为 $order_common_example_backup_file${NC}"
429+
else
430+
echo -e "${RED}备份order_common.example.html文件失败。${NC}"
431+
exit 1
432+
fi
398433
}
399434

400435
# 定义恢复函数
401-
restore_env_json_and_cookie_auth_code() {
436+
restore_file() {
402437
# 恢复env.json文件
403438
local env_json_backup_file="env.json.backup_$(date +%Y%m%d).json"
404439
if [ -f "./$env_json_backup_file" ]; then
@@ -432,7 +467,7 @@ restore_env_json_and_cookie_auth_code() {
432467
echo -e "${RED}备份文件 $env_backup_file 不存在,无法恢复.env文件。${NC}"
433468
exit 1
434469
fi
435-
470+
436471
# 恢复map.txt文件
437472
local map_txt_backup_file="map.txt.backup_$(date +%Y%m%d)"
438473
if [ -f "./$map_txt_backup_file" ]; then
@@ -466,6 +501,23 @@ restore_env_json_and_cookie_auth_code() {
466501
echo -e "${RED}备份文件 $parses_conf_backup_file 不存在,无法恢复parses.conf文件。${NC}"
467502
exit 1
468503
fi
504+
505+
# 恢复order_common.example.html文件
506+
local order_common_example_backup_file="order_common.example.html.backup_$(date +%Y%m%d)"
507+
if [ -f "./$order_common_example_backup_file" ]; then
508+
echo -e "${YELLOW}正在恢复order_common.example.html文件...${NC}"
509+
cp "./$order_common_example_backup_file" "$REPO_DIR/$PROJECT_NAME/public/sub/order_common.example.html"
510+
if [ $? -eq 0 ]; then
511+
echo -e "${GREEN}order_common.example.html文件已恢复。${NC}"
512+
rm "./$order_common_example_backup_file" # 删除备份文件
513+
else
514+
echo -e "${RED}恢复order_common.example.html文件失败。${NC}"
515+
exit 1
516+
fi
517+
else
518+
echo -e "${RED}备份文件 $order_common_example_backup_file 不存在,无法恢复order_common.example.html文件。${NC}"
519+
exit 1
520+
fi
469521
}
470522

471523
# 尝试次数限制,避免无限循环
@@ -485,7 +537,7 @@ pull_repo() {
485537
# 执行yarn
486538
echo -e "${YELLOW}正在还原备份的文件和入库密码值${NC}"
487539
# Git pull成功后执行pm2 restart drpyS之前,还原配置文件和COOKIE_AUTH_CODE值
488-
restore_env_json_and_cookie_auth_code
540+
restore_file
489541
echo -e "${YELLOW}正在执行yarn...${NC}"
490542
if yarn; then
491543
echo -e "${GREEN}yarn执行成功。${NC}"
@@ -520,7 +572,7 @@ pull_repo() {
520572
echo -e "${YELLOW}本地文件已被强制覆盖。${NC}"
521573
echo -e "${YELLOW}正在还原备份的文件和入库密码值${NC}"
522574
# Git pull成功后执行pm2 restart drpyS之前,还原配置文件和COOKIE_AUTH_CODE值
523-
restore_env_json_and_cookie_auth_code
575+
restore_file
524576
if yarn; then
525577
echo -e "${GREEN}yarn执行成功。${NC}"
526578
pm2 restart drpyS
@@ -579,7 +631,7 @@ while true; do
579631
# 如果git fetch成功,检查是否有更新
580632
if git status | grep -q "Your branch is behind"; then
581633
echo -e "${YELLOW}检测到有更新,执行备份文件${NC}"
582-
backup_files_and_cookie_auth_code # 调用备份函数
634+
backup_files # 调用备份函数
583635
while [ $ATTEMPT_COUNT -lt $MAX_ATTEMPTS ]; do
584636
if pull_repo; then
585637
echo -e "${GREEN}更新仓库完成"

0 commit comments

Comments
 (0)