updater.sh 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/bin/sh
  2. . /app/sh.fun/curl.sh
  3. cd /app
  4. # 注意:不同shell对语法的支持有细微差别,第一行并不能随便写。
  5. local_version=$(sed -n '1p' local_version.txt)
  6. local_time=$(sed -n '2p' local_version.txt)
  7. # 指定版本(最新版或特定版本) https://github.com/MetaCubeX/subconverter
  8. release_tag="latest"
  9. #release_tag="v2.0.3"
  10. echo "本地版本: ${local_version} 时间: ${local_time}"
  11. # 获取latest的实际版本号
  12. if [ "${release_tag}"x = "latest"x ]; then
  13. release_tag=$(curl_cycle -kfsSL "https://api.github.com/repos/MetaCubeX/subconverter/releases/latest" | jq -r .tag_name)
  14. fi
  15. # 获取发布信息(文件名、更新时间、下载地址)
  16. releaseJson=$(curl_cycle -kfsSL "https://api.github.com/repos/MetaCubeX/subconverter/releases" | jq -r --arg tag ${release_tag} '.[]|select(.tag_name==$tag)')
  17. fName=""
  18. fUrl=""
  19. release_time="2023-01-15T16:45:04Z"
  20. case $(uname -m) in
  21. x86_64)
  22. # amd64 $(uname -m)="x86_64"
  23. fName=$(echo "${releaseJson}" | jq -r '.assets[]|select(.browser_download_url|contains("linux64"))|.name')
  24. fUrl=$(echo "${releaseJson}" | jq -r '.assets[]|select(.browser_download_url|contains("linux64"))|.browser_download_url')
  25. release_time=$(echo "${releaseJson}" | jq -r '.assets[]|select(.browser_download_url|contains("linux64"))|.updated_at')
  26. ;;
  27. *)
  28. # arm64 $(uname -m)="aarch64"
  29. fName=$(echo "${releaseJson}" | jq -r --arg arch $(uname -m) '.assets[]|select(.browser_download_url|contains($arch))|.name')
  30. fUrl=$(echo "${releaseJson}" | jq -r --arg arch $(uname -m) '.assets[]|select(.browser_download_url|contains($arch))|.browser_download_url')
  31. release_time=$(echo "${releaseJson}" | jq -r --arg arch $(uname -m) '.assets[]|select(.browser_download_url|contains($arch))|.updated_at')
  32. ;;
  33. esac
  34. echo "指定版本: ${release_tag} 时间: ${release_time}"
  35. if [ "${release_tag}"x != ""x ] && [ "${release_tag}"x != "${local_version}"x -o "${release_time}"x != "${local_time}"x ]; then
  36. [ -d "subconverter" ] && rm -rf subconverter
  37. curlDown ./ ${fName} ${fUrl}
  38. tar -xzpvf ${fName}
  39. # 复制配置文件
  40. #cp appCfg/pref.toml subconverter/base/config/
  41. echo "${release_tag}" > local_version.txt
  42. echo "${release_time}" >> local_version.txt
  43. echo "版本已更新至: ${release_tag}"
  44. fi