48 lines
1.5 KiB
Bash
Executable File
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"
|