blob: 0b0ff996c4da950fcac6be72263bd5de68cda74c (
plain)
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
|
#!/bin/bash
# 简化版 UU 加速器监控脚本
# 基本配置
INSTALL_DIR="/usr/lib/uu"
CONFIG_DIR="/etc/uu"
RUNNING_DIR="/tmp/uu"
PLUGIN_TAR="uu.tar.gz"
PLUGIN_EXE="uuplugin"
PLUGIN_CONF="uu.conf"
PID_FILE="/var/run/uuplugin.pid"
PLUGIN_TAR_MD5_FILE="uu.tar.gz.md5"
DOWNLOAD_URL="https://router.uu.163.com/api/plugin?type=steam-deck-plugin-x86_64"
# 确保目录存在
mkdir -p "$INSTALL_DIR" "$CONFIG_DIR" "$RUNNING_DIR"
# 下载插件包
download_plugin() {
local tmp_file="$RUNNING_DIR/$PLUGIN_TAR"
local plugin_info=$(curl -s -k -H "Accept:text/plain" "$DOWNLOAD_URL")
[ -z "$plugin_info" ] && return 1
local plugin_url=$(echo "$plugin_info" | cut -d',' -f1)
local plugin_md5=$(echo "$plugin_info" | cut -d',' -f2)
if ! curl -s -k "$plugin_url" -o "$tmp_file"; then
rm -f "$tmp_file"
return 1
fi
local download_md5=$(md5sum "$tmp_file" | awk '{print $1}')
if [ "$download_md5" != "$plugin_md5" ]; then
rm -f "$tmp_file"
return 1
fi
# 解压并安装
if tar -xzf "$tmp_file" -C "$RUNNING_DIR"; then
chmod +x "$RUNNING_DIR/$PLUGIN_EXE"
mv "$tmp_file" "$INSTALL_DIR/"
echo "$plugin_md5" > "$INSTALL_DIR/$PLUGIN_TAR_MD5_FILE"
return 0
fi
rm -f "$tmp_file"
return 1
}
# 检查是否运行
is_running() {
if [ -f "$PID_FILE" ]; then
local pid=$(cat "$PID_FILE")
if ps -p "$pid" >/dev/null 2>&1; then
return 0
fi
fi
return 1
}
# 启动插件
start_plugin() {
if [ -f "$RUNNING_DIR/$PLUGIN_EXE" ]; then
"$RUNNING_DIR/$PLUGIN_EXE" "$CONFIG_DIR/$PLUGIN_CONF" >/dev/null 2>&1 &
return 0
elif [ -f "$INSTALL_DIR/$PLUGIN_TAR" ]; then
if tar -xzf "$INSTALL_DIR/$PLUGIN_TAR" -C "$RUNNING_DIR"; then
chmod +x "$RUNNING_DIR/$PLUGIN_EXE"
"$RUNNING_DIR/$PLUGIN_EXE" "$CONFIG_DIR/$PLUGIN_CONF" >/dev/null 2>&1 &
return 0
fi
fi
return 1
}
# 主循环
while true; do
if ! is_running; then
if ! start_plugin; then
if ! download_plugin; then
echo "无法下载或启动插件,将在5秒后重试..."
sleep 5
continue
fi
start_plugin
fi
fi
sleep 60
done
|