#!/usr/bin/env bash set -euo pipefail repo="${AYUGRAM_REPO:-AyuGram/AyuGramDesktop}" api="https://api.github.com/repos/${repo}/releases/latest" json="$(curl -fsSL --retry 5 --retry-all-errors \ -H 'Accept: application/vnd.github+json' \ -H 'X-GitHub-Api-Version: 2022-11-28' \ "$api")" tag="$(jq -r '.tag_name // empty' <<<"$json")" prerelease="$(jq -r '.prerelease // false' <<<"$json")" draft="$(jq -r '.draft // false' <<<"$json")" [[ -n "$tag" ]] || { echo "GitHub did not return a release tag" >&2; exit 1; } [[ "$draft" == "false" ]] || { echo "Latest release is a draft" >&2; exit 1; } [[ "$prerelease" == "false" ]] || { echo "Latest release is a prerelease: $tag" >&2; exit 1; } version="${tag#v}" [[ "$version" =~ ^[0-9]+(\.[0-9]+)+([._-][0-9A-Za-z.-]+)?$ ]] || { echo "Unexpected release tag: $tag" >&2 exit 1 } archive="AyuGramDesktop-${version}-full.tar.gz" asset_url="https://github.com/${repo}/releases/download/${tag}/${archive}" echo "Latest stable release: ${tag}" echo "Archive: ${asset_url}" curl -fsSIL --retry 5 --retry-all-errors "$asset_url" >/dev/null current="" [[ -f .current-version ]] && current="$(tr -d '[:space:]' < .current-version)" echo "Current published version: ${current:-none}" if [[ "$version" == "$current" ]]; then echo "update=false" >> "$GITHUB_OUTPUT" else echo "update=true" >> "$GITHUB_OUTPUT" fi echo "version=${version}" >> "$GITHUB_OUTPUT" echo "tag=${tag}" >> "$GITHUB_OUTPUT" echo "archive=${archive}" >> "$GITHUB_OUTPUT"