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