#!/bin/sh . /app/sh.fun/curl.sh cd /app # 注意:不同shell对语法的支持有细微差别,第一行并不能随便写。 local_version=$(sed -n '1p' local_version.txt) local_time=$(sed -n '2p' local_version.txt) # 指定版本(最新版或特定版本) https://github.com/MetaCubeX/subconverter release_tag="latest" #release_tag="v2.0.3" echo "本地版本: ${local_version} 时间: ${local_time}" # 获取latest的实际版本号 if [ "${release_tag}"x = "latest"x ]; then release_tag=$(curl_cycle -kfsSL "https://api.github.com/repos/MetaCubeX/subconverter/releases/latest" | jq -r .tag_name) fi # 获取发布信息(文件名、更新时间、下载地址) releaseJson=$(curl_cycle -kfsSL "https://api.github.com/repos/MetaCubeX/subconverter/releases" | jq -r --arg tag ${release_tag} '.[]|select(.tag_name==$tag)') fName="" fUrl="" release_time="2023-01-15T16:45:04Z" case $(uname -m) in x86_64) # amd64 $(uname -m)="x86_64" fName=$(echo "${releaseJson}" | jq -r '.assets[]|select(.browser_download_url|contains("linux64"))|.name') fUrl=$(echo "${releaseJson}" | jq -r '.assets[]|select(.browser_download_url|contains("linux64"))|.browser_download_url') release_time=$(echo "${releaseJson}" | jq -r '.assets[]|select(.browser_download_url|contains("linux64"))|.updated_at') ;; *) # arm64 $(uname -m)="aarch64" fName=$(echo "${releaseJson}" | jq -r --arg arch $(uname -m) '.assets[]|select(.browser_download_url|contains($arch))|.name') fUrl=$(echo "${releaseJson}" | jq -r --arg arch $(uname -m) '.assets[]|select(.browser_download_url|contains($arch))|.browser_download_url') release_time=$(echo "${releaseJson}" | jq -r --arg arch $(uname -m) '.assets[]|select(.browser_download_url|contains($arch))|.updated_at') ;; esac echo "指定版本: ${release_tag} 时间: ${release_time}" if [ "${release_tag}"x != ""x ] && [ "${release_tag}"x != "${local_version}"x -o "${release_time}"x != "${local_time}"x ]; then [ -d "subconverter" ] && rm -rf subconverter curlDown ./ ${fName} ${fUrl} tar -xzpvf ${fName} # 复制配置文件 #cp appCfg/pref.toml subconverter/base/config/ echo "${release_tag}" > local_version.txt echo "${release_time}" >> local_version.txt echo "版本已更新至: ${release_tag}" fi