add script to automate updates

This commit is contained in:
Mikhail Novosyolov 2022-04-15 22:35:19 +03:00
parent 97fad9dda3
commit c3b5372947

45
upd.sh Executable file
View file

@ -0,0 +1,45 @@
#!/usr/bin/env bash
# Script to partly automate updating this package
# Based on upd.sh from abf.io/import/instaloader
# sudo dnf install /usr/bin/rpmbuild /usr/bin/spectool /usr/bin/rpmspec /usr/bin/git /usr/bin/curl /usr/bin/abf /usr/bin/jq /usr/bin/sed /usr/bin/tar /usr/bin/xz
set -x
set -e
set -f
set -u
spec="$PWD"/pipewire.spec
dir0="$PWD"
old_version="$(rpmspec -q --srpm --qf '%{version}' "$spec")"
latest_version="$(curl "https://api.github.com/repos/PipeWire/pipewire/tags" | jq -r '.[0].name')"
[ -n "$latest_version" ]
if [ "$old_version" = "$latest_version" ]; then
echo "No updates"
exit 0
fi
sed -E -i'' "$spec" \
-e "s,^Version:.+,Version:\t${latest_version}," \
-e "s,^Release:.+,Release:\t1," \
--
source0="$(rpmspec --parse "$spec" | grep -i ^Source0: | awk -F '/' '{print $NF}')"
spectool --get-files --source 0 "$spec"
[ -f "$source0" ]
patches_ok=0
tmp="$(mktemp --tmpdir=/tmp -d)"
trap 'if [ "$patches_ok" = 1 ]; then rm -fr "$tmp"; fi' EXIT
# check appliability of patches
rpmbuild --define "_sourcedir $PWD" --define "_builddir $tmp" -bp "$spec" && patches_ok=1
abf put
PAGER='' git diff
# can be copypasted for a commit message
echo "upd: $old_version -> $latest_version"
if [ "$patches_ok" = 0 ]; then
echo "PATCHES require attention!"
fi