Last active 1 month ago

Update existing Arch Linux package for Squeebot plugin

update.sh Raw
1#!/usr/bin/env bash
2set -euo pipefail
3
4PKGBUILD=$1
5BASEURL=https://git.icynet.eu/api/packages/Squeebot/npm
6
7if [ ! -f $PKGBUILD ]; then
8 echo "Please provide a file"
9 exit 1
10fi
11
12BASEDIR="$(cd "`dirname $PKGBUILD`" && pwd -P)"
13
14# Read current vars from PKGBUILD
15source $PKGBUILD
16
17function get_package_src() {
18 echo "$BASEURL/%40$_npm_user%2F$_npm_pkg/-/$1/$_npm_pkg-$1.tgz"
19}
20
21function get_version_src() {
22 echo "$BASEURL/%40$_npm_user%2F$_npm_pkg"
23}
24
25echo "Determining the latest version"
26
27# Get latest version from Gitea
28LATEST_VERSION=$(curl -s $(get_version_src) | jq -r '.["dist-tags"].latest')
29
30if [ $pkgver = $LATEST_VERSION ]; then
31 echo "$pkgver is already the latest version"
32 exit 0
33fi
34
35echo "Found new version $LATEST_VERSION, determining sha256sum"
36
37# Get latest version checksum for the PKGBUILD
38LATEST_CHECKSUM=$(curl -s $(get_package_src $LATEST_VERSION) | sha256sum | cut -f 1 -d " ")
39
40echo "Patching the PKGBUILD"
41
42# Patch the PKGBUILD
43sed -i "/^sha256sums=(/{n;s/.*/\t'$LATEST_CHECKSUM'/}" $PKGBUILD
44sed -i "/^pkgrel=/s/.*/pkgrel=1/" $PKGBUILD
45sed -i "/^pkgver=/s/.*/pkgver=$LATEST_VERSION/" $PKGBUILD
46
47makepkg -D $BASEDIR --printsrcinfo > $BASEDIR/.SRCINFO
48
49echo "Pushing update to git"
50
51git -C $BASEDIR add $BASEDIR/.SRCINFO $BASEDIR/PKGBUILD
52git -C $BASEDIR commit -m "Change version to $LATEST_VERSION"
53git -C $BASEDIR push
54
55echo "All done!"
56