summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrás Czigány2021-01-30 22:48:53 +0100
committerAndrás Czigány2021-01-30 22:51:18 +0100
commit2a788988ebfafe79ea6e4198c404f711432136d3 (patch)
tree071304b957b2e7ea0537915f95f51360dc7107c6
parent681331bce871c4ece9b9b17d5c50a79a98432fab (diff)
downloadaur-2a788988ebfafe79ea6e4198c404f711432136d3.tar.gz
update_version.sh: add script to automate updating PKGBUILD
-rw-r--r--.gitignore2
-rwxr-xr-xupdate_version.sh92
2 files changed, 94 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index d57fc0801f2e..7ff32b59d45e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,5 @@ eeau.x86_64.bin
pkg/
src/
eea-dkms-*.zst
+/pre*
+/post*
diff --git a/update_version.sh b/update_version.sh
new file mode 100755
index 000000000000..72921ef6f86f
--- /dev/null
+++ b/update_version.sh
@@ -0,0 +1,92 @@
+#!/bin/bash
+set -euxo pipefail
+
+source PKGBUILD
+PKG=${pkgname}
+
+# Get latest version
+metainfo=$(curlie --silent \
+ https://www.eset.com/int/business/download/endpoint-antivirus-linux/ \
+ type==13554 \
+ tx_esetdownloads_ajax[product]==78 \
+ tx_esetdownloads_ajax[page_id]==308 \
+ tx_esetdownloads_ajax[plugin_id]==34508 \
+ tx_esetdownloads_ajax[beta]==0)
+VER=$(jq -r 'first(.files.installer[]).full_version' <(cat <<< "$metainfo"))
+DOWNLOAD_URL=$(jq -r 'first(.files.installer[]).url' <(cat <<< "$metainfo"))
+bundle=$(basename ${DOWNLOAD_URL})
+CHANGELOG=$(xq -r '.changelog.ul[0].li' <(cat <<< "<changelog>`jq -r 'first(.changelogs[])' <(cat <<< "$metainfo")`</changelog>"))
+
+# Insert latest version into PKGBUILD
+sed -i \
+ -e "s/^pkgver=.*/pkgver=${VER}/" \
+ -e 's/^pkgrel=.*/pkgrel=1/' \
+ -e "s|^_bundle_url=.*|_bundle_url=`dirname ${DOWNLOAD_URL}`|" \
+ -e "s/^_bundle_file=.*/_bundle_file=${bundle}/" \
+ PKGBUILD
+
+# Check whether this changed anything
+if (git diff -s --exit-code PKGBUILD); then
+ echo "Package ${PKG} has most recent version ${VER}"
+ exit 0
+fi
+
+# Update hashes
+updpkgsums
+
+# Update deb package name
+deb_package=$(tail -n +`awk '/^exit$/ { print NR + 1; exit }' ${bundle}` ${bundle} | bsdtar -tf - | grep deb | tail -n1)
+
+if [[ ! "${deb_package}" =~ ^eea-${VER}-(.*).x86_64.deb$ ]]; then
+ echo "Deb package name ${deb_package} has unexpected format"
+ exit 1
+fi
+
+sed -i -e "s/^distro=.*/_distro=${BASH_REMATCH[1]}/" PKGBUILD
+
+# Update install file
+tail -n +`awk '/^exit$/ { print NR + 1; exit }' ${bundle}` ${bundle} |
+ bsdtar -xOf - ${deb_package} | # deb from bundle
+ bsdtar -xOf - control.tar.gz | # control.tar.gz from deb
+ bsdtar -xf - "pre*" "post*" # install scripts from control.tar.gz
+
+csplit preinst "/### Upgrade ###/" --suppress-matched -f preinst --quiet
+csplit postinst "/### Upgrade & Install ###/" --suppress-matched -f postinst --quiet
+
+echo "pre_install() {
+`sed -e "s/^/\t/g" preinst00`
+}
+
+pre_upgrade() {
+`sed -e "s/^/\t/g" preinst | sed -e 's/\[ "$1" = "upgrade" ] || \[ "$1" = "2" ]/true/g'`
+}
+
+post_install() {
+`sed -e "s/^/\t/g" postinst00 | sed -e 's/\[ "$1" = "configure" ] || \[ "$1" = "1" ]/true/g'`
+}
+
+post_upgrade() {
+`sed -e "s/^/\t/g" postinst | sed -e 's/\[ "$1" = "configure" ] || \[ "$1" = "1" ]/true/g' -e 's/\[ "$1" = "2" ]/false/g' -e 's/\[ "$1" = "configure" ] && \[ -n "$2" ]/true/g'`
+}
+
+pre_remove() {
+`sed -e "s/^/\t/g" prerm | sed -e 's/\[ "$1" = "upgrade" ] || \[ "$1" = "1" ]/false/g'`
+}
+
+post_remove() {
+`sed -e "s/^/\t/g" postrm | sed -e 's/\[ "$1" = "upgrade" ] || \[ "$1" = "1" ]/false/g' -e 's/\[ "$1" = "purge" ]/false/g'`
+
+ # remove kernel modules
+ rm -rf /lib/modules/**/eset/eea
+ rmdir --ignore-fail-on-non-empty /lib/modules/**/eset
+}" | sed -e "/#!/d;s/[ \t]*$//" > eea.install
+
+# Update .SRCINFO
+makepkg --printsrcinfo >.SRCINFO
+
+# Commit changes
+git add PKGBUILD .SRCINFO eea.install
+git commit -m "${PKG} v${VER}
+
+${CHANGELOG}"
+