Automate AUR publish in tagged release workflow (#22)

This commit is contained in:
2026-03-14 19:49:46 -07:00
committed by GitHub
parent 99f4d2baaf
commit 9eed37420e
36 changed files with 641 additions and 722 deletions

124
scripts/update-aur-package.sh Executable file
View File

@@ -0,0 +1,124 @@
#!/usr/bin/env bash
set -euo pipefail
usage() {
cat <<'EOF'
Usage: scripts/update-aur-package.sh --pkg-dir <dir> --version <version> --appimage <path> --wrapper <path> --assets <path>
EOF
}
pkg_dir=
version=
appimage=
wrapper=
assets=
while [[ $# -gt 0 ]]; do
case "$1" in
--pkg-dir)
pkg_dir="${2:-}"
shift 2
;;
--version)
version="${2:-}"
shift 2
;;
--appimage)
appimage="${2:-}"
shift 2
;;
--wrapper)
wrapper="${2:-}"
shift 2
;;
--assets)
assets="${2:-}"
shift 2
;;
-h|--help)
usage
exit 0
;;
*)
echo "Unknown argument: $1" >&2
usage >&2
exit 1
;;
esac
done
if [[ -z "$pkg_dir" || -z "$version" || -z "$appimage" || -z "$wrapper" || -z "$assets" ]]; then
usage >&2
exit 1
fi
version="${version#v}"
pkgbuild="${pkg_dir}/PKGBUILD"
if [[ ! -f "$pkgbuild" ]]; then
echo "Missing PKGBUILD at $pkgbuild" >&2
exit 1
fi
for artifact in "$appimage" "$wrapper" "$assets"; do
if [[ ! -f "$artifact" ]]; then
echo "Missing artifact: $artifact" >&2
exit 1
fi
done
mapfile -t sha256sums < <(sha256sum "$appimage" "$wrapper" "$assets" | awk '{print $1}')
tmpfile="$(mktemp)"
awk \
-v version="$version" \
-v sum_appimage="${sha256sums[0]}" \
-v sum_wrapper="${sha256sums[1]}" \
-v sum_assets="${sha256sums[2]}" \
'
BEGIN {
in_sha_block = 0
found_pkgver = 0
found_sha_block = 0
}
/^pkgver=/ {
print "pkgver=" version
found_pkgver = 1
next
}
/^sha256sums=\(/ {
print "sha256sums=("
print "\047" sum_appimage "\047"
print "\047" sum_wrapper "\047"
print "\047" sum_assets "\047"
in_sha_block = 1
next
}
in_sha_block {
if ($0 ~ /^\)/) {
print ")"
in_sha_block = 0
found_sha_block = 1
}
next
}
{
print
}
END {
if (!found_pkgver) {
print "Missing pkgver= line in PKGBUILD" > "/dev/stderr"
exit 1
}
if (!found_sha_block) {
print "Missing sha256sums block in PKGBUILD" > "/dev/stderr"
exit 1
}
}
' "$pkgbuild" > "$tmpfile"
mv "$tmpfile" "$pkgbuild"
(
cd "$pkg_dir"
makepkg --printsrcinfo > .SRCINFO
)