Files
2026-09-06 13:36:55 +03:00

48 lines
1.5 KiB
Bash
Executable File

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