|
|
@@ -0,0 +1,68 @@
|
|
|
+#!/bin/sh
|
|
|
+
|
|
|
+# 自动更新为最新版本
|
|
|
+# 获取最新版本号
|
|
|
+ftag_name=$(curl -ksSL https://api.github.com/repos/aiprodcoder/MIXAPI/releases/latest | sed -n 's/.*"tag_name":[[:space:]]*"\([^"]*\)".*/\1/p')
|
|
|
+
|
|
|
+# 如果获取失败,使用默认版本
|
|
|
+if [ -z "$ftag_name" ]; then
|
|
|
+ echo "无法获取最新版本号,使用默认版本 v1.2"
|
|
|
+ ftag_name="v1.2"
|
|
|
+fi
|
|
|
+
|
|
|
+echo "最新版本: ${ftag_name}"
|
|
|
+
|
|
|
+# 版本标记文件
|
|
|
+VERSION_FILE="/app/version.txt"
|
|
|
+
|
|
|
+# 检查是否需要更新
|
|
|
+if [ -f "$VERSION_FILE" ]; then
|
|
|
+ current_version=$(cat "$VERSION_FILE")
|
|
|
+ echo "当前版本: ${current_version}"
|
|
|
+ if [ "$current_version" = "$ftag_name" ]; then
|
|
|
+ echo "已是最新版本,无需更新"
|
|
|
+ else
|
|
|
+ echo "发现新版本,开始更新..."
|
|
|
+ rm -f /app/mixapi
|
|
|
+ fi
|
|
|
+else
|
|
|
+ echo "首次运行,开始下载..."
|
|
|
+fi
|
|
|
+
|
|
|
+# 如果可执行文件不存在,则下载
|
|
|
+if [ ! -f "/app/mixapi" ]; then
|
|
|
+ # 检测架构
|
|
|
+ arch="$(uname -m)"
|
|
|
+ echo "检测到架构: ${arch}"
|
|
|
+
|
|
|
+ case "$arch" in
|
|
|
+ 'x86_64')
|
|
|
+ download_url="https://github.com/aiprodcoder/MIXAPI/releases/download/${ftag_name}/mixapi-${ftag_name}-linux-amd64"
|
|
|
+ ;;
|
|
|
+ 'aarch64')
|
|
|
+ download_url="https://github.com/aiprodcoder/MIXAPI/releases/download/${ftag_name}/mixapi-${ftag_name}-linux-arm64"
|
|
|
+ ;;
|
|
|
+ *)
|
|
|
+ echo "不支持的架构: ${arch}"
|
|
|
+ exit 1
|
|
|
+ ;;
|
|
|
+ esac
|
|
|
+
|
|
|
+ echo "下载地址: ${download_url}"
|
|
|
+ curl -ksSL -o /app/mixapi "${download_url}"
|
|
|
+
|
|
|
+ if [ $? -eq 0 ]; then
|
|
|
+ chmod +x /app/mixapi
|
|
|
+ echo "${ftag_name}" > "$VERSION_FILE"
|
|
|
+ echo "下载完成,版本: ${ftag_name}"
|
|
|
+ else
|
|
|
+ echo "下载失败"
|
|
|
+ exit 1
|
|
|
+ fi
|
|
|
+fi
|
|
|
+
|
|
|
+# 如果不是仅更新模式,则启动服务
|
|
|
+if [ "${1}" != "OnlyUpdate" ]; then
|
|
|
+ echo "启动 mixapi 服务..."
|
|
|
+ exec /app/mixapi
|
|
|
+fi
|