termius/upd.sh

49 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
# Update the termius AUR package to the latest snap release.
# Any failing step aborts the script before the git commit.
set -eu
cd "$(dirname "$0")"
# Get new version info
INFO=$(curl -fsS -H 'X-Ubuntu-Series: 16' https://api.snapcraft.io/api/v1/snaps/details/termius-app)
VER=$(printf '%s\n' "$INFO" | jq -er '.version')
REV=$(printf '%s\n' "$INFO" | jq -er '.download_url' | grep -o '_[0-9]\+\.snap$')
case $VER in
*[!0-9A-Za-z._+-]*|'')
echo "Unexpected version '$VER'" >&2
exit 1
;;
esac
# Nothing to do if PKGBUILD is already at this version and committed
if [ "$VER" = "$(sed -n 's/^pkgver=//p' PKGBUILD)" ] \
&& [ -z "$(git status --porcelain -- PKGBUILD .SRCINFO)" ]; then
echo "Already up to date ($VER)"
exit 0
fi
# Update PKGBUILD
sed -i "s/_[0-9]\+\.snap/$REV/g" PKGBUILD
sed -i "s/^pkgver=.*$/pkgver=$VER/" PKGBUILD
# Calc new hash
updpkgsums
# Build & install pkg
makepkg -sif --noconfirm
# Update .SRCINFO
makepkg --printsrcinfo > .SRCINFO
# Git ops
git add .SRCINFO PKGBUILD
git commit -m "Update to $VER"
# Cleanup
rm -rf pkg/ src/ *.snap *.pkg.tar.zst
printf '\nAll done!\nRemember to git push!\n'