| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- #!/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
|