最終更新 1 month ago

Update existing Arch Linux package for Squeebot plugin

evert's Avatar evert revised this gist 1 month ago. Go to revision

1 file changed, 55 insertions

update.sh(file created)

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