| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #!/bin/sh
- # 公共变量
- VERSION_FILE="/app/version.txt"
- MIXAPI_BIN="/app/mixapi"
- MIXAPI_NEW="/app/mixapi.new"
- UPDATE_SCRIPT="/app/check_update.sh"
- CRON_FILE="/var/spool/cron/crontabs/root"
- DEFAULT_VERSION="v1.2"
- GITHUB_API_URL="https://api.github.com/repos/aiprodcoder/MIXAPI/releases/latest"
- GITHUB_DOWNLOAD_BASE="https://github.com/aiprodcoder/MIXAPI/releases/download"
- # 获取最新版本号
- get_latest_version() {
- wget -qO- "$GITHUB_API_URL" | sed -n 's/.*"tag_name":[[:space:]]*"\([^"]*\)".*/\1/p'
- }
- # 获取下载URL
- get_download_url() {
- local version=$1
- local arch="$(uname -m)"
-
- case "$arch" in
- 'x86_64')
- echo "${GITHUB_DOWNLOAD_BASE}/${version}/mixapi-${version}-linux-amd64"
- ;;
- 'aarch64')
- echo "${GITHUB_DOWNLOAD_BASE}/${version}/mixapi-${version}-linux-arm64"
- ;;
- *)
- echo ""
- ;;
- esac
- }
- # 下载指定版本
- # 参数: $1=版本号, $2=目标文件路径
- download_version() {
- local version=$1
- local target=$2
- local url=$(get_download_url "$version")
-
- if [ -z "$url" ]; then
- echo "不支持的架构: $(uname -m)"
- return 1
- fi
-
- echo "下载地址: ${url}"
- wget -qO "$target" "$url"
-
- if [ $? -eq 0 ] && [ -s "$target" ]; then
- chmod +x "$target"
- return 0
- else
- rm -f "$target"
- return 1
- fi
- }
- # 获取当前版本
- get_current_version() {
- if [ -f "$VERSION_FILE" ]; then
- cat "$VERSION_FILE"
- else
- echo ""
- fi
- }
- # 保存版本号
- save_version() {
- echo "$1" > "$VERSION_FILE"
- }
- # 查找 mixapi 进程 PID
- find_mixapi_pid() {
- local pid=""
- pid=$(ps aux 2>/dev/null | grep "$MIXAPI_BIN" | grep -v grep | awk '{print $1}' | head -1)
- if [ -z "$pid" ]; then
- # busybox ps 格式不同,尝试另一种方式
- pid=$(ps | grep "$MIXAPI_BIN" | grep -v grep | awk '{print $1}' | head -1)
- fi
- echo "$pid"
- }
|