From 2e1e5d5a69b25109cacac4da1e620ae0b61c6760 Mon Sep 17 00:00:00 2001 From: maxice8 Date: Tue, 21 Aug 2018 17:52:32 -0300 Subject: [PATCH] xbps-triggers: add appstream-cache hook --- srcpkgs/xbps-triggers/files/appstream-cache | 67 +++++++++++++++++++++ srcpkgs/xbps-triggers/template | 2 +- 2 files changed, 68 insertions(+), 1 deletion(-) create mode 100755 srcpkgs/xbps-triggers/files/appstream-cache diff --git a/srcpkgs/xbps-triggers/files/appstream-cache b/srcpkgs/xbps-triggers/files/appstream-cache new file mode 100755 index 00000000000..08cf4519d2a --- /dev/null +++ b/srcpkgs/xbps-triggers/files/appstream-cache @@ -0,0 +1,67 @@ +#!/bin/sh +# +# Updates the appstream AppData cache during installation of packages and +# deletes it when AppStream is removed +# +# Arguments: $ACTION = [run/targets] +# $TARGET = [post-install/post-remove] +# $PKGNAME +# $VERSION +# $UPDATE = [yes/no] +# +ACTION="$1" +TARGET="$2" +PKGNAME="$3" +VERSION="$4" +UPDATE="$5" + +export PATH="$PATH:/usr/local/bin" + +# The appstreamcli binary program. +APPSTREAMCLI="usr/bin/appstreamcli" + +# Paths that hold appstream metadata files +# the first one is the traditional one where most package reside but it is +# considered deprecated by upstream +# the other 3 are the ones used by upstream as noted in as-pool.c#L93-95 +APPDATA_DATAPATHS="usr/share/appdata usr/share/app-info var/lib/app-info var/cache/app-info" + +# Location where the cache files go when they are generated they are most +# of the time compressed with gvz extension +APPSTREAM_CACHE="var/cache/app-info/gv" + +case "$ACTION" in +targets) + echo "post-install post-remove" + ;; +run) + case "$TARGET" in + post-install|post-remove) + if [ $PKGNAME = "AppStream" -a $TARGET = "post-remove" ]; then + for f in ${APPSTREAM_CACHE}/*; do + rm -f ${f} + done + echo "Removing AppStream cache..." + rmdir ${APPSTREAM_CACHE} + exit 0 + fi + + if [ ! -x "$APPSTREAMCLI" ]; then + exit 0 + fi + + for path in ${APPDATA_DATAPATHS}; do + APPSTREAM_PATHS="${APPSTREAM_PATHS} --datapath ${path}" + done + + echo "Updating AppStream cache..." + ${APPSTREAMCLI} refresh-cache --force ${APPSTREAM_PATHS} --cachepath ${APPSTREAM_CACHE} + ;; + esac + ;; +*) + exit 1 + ;; +esac + +exit 0 diff --git a/srcpkgs/xbps-triggers/template b/srcpkgs/xbps-triggers/template index 6b00b42f5d7..e95499675d3 100644 --- a/srcpkgs/xbps-triggers/template +++ b/srcpkgs/xbps-triggers/template @@ -1,6 +1,6 @@ # Template file for 'xbps-triggers' pkgname=xbps-triggers -version=0.108 +version=0.109 revision=1 noarch=yes bootstrap=yes