git: 37c1a83366f0 - main - devel/desktop-file-utils: use trigger

From: Baptiste Daroussin <bapt_at_FreeBSD.org>
Date: Wed, 17 Nov 2021 09:48:16 UTC
The branch main has been updated by bapt:

URL: https://cgit.FreeBSD.org/ports/commit/?id=37c1a83366f02cdf76b850c630f79c275a418bea

commit 37c1a83366f02cdf76b850c630f79c275a418bea
Author:     Baptiste Daroussin <bapt@FreeBSD.org>
AuthorDate: 2021-10-11 07:46:55 +0000
Commit:     Baptiste Daroussin <bapt@FreeBSD.org>
CommitDate: 2021-11-17 09:47:29 +0000

    devel/desktop-file-utils: use trigger
    
    Instead of polluting all files with a script to be executed post install
    convert the handling of mime database into a trigger
    
    This trigger will regenerate the db each time someone install a files
    into the concern directory
    
    On removal of the desktop-file-utils port, it will cleanup its cache.
    
    While here convert the post installation script into a lua script.
    Note the db is always run at post installation of the port, just to make
    sure the cache is up to date, in case the format changes in the futur
---
 devel/desktop-file-utils/Makefile                  | 14 +++++--------
 .../files/desktop-file-utils.ucl.in                | 24 ++++++++++++++++++++++
 devel/desktop-file-utils/files/pkg-deinstall.in    | 15 --------------
 devel/desktop-file-utils/files/pkg-install.in      | 11 ----------
 .../files/pkg-post-install.lua.in                  |  2 ++
 5 files changed, 31 insertions(+), 35 deletions(-)

diff --git a/devel/desktop-file-utils/Makefile b/devel/desktop-file-utils/Makefile
index ff765677b064..4a83a8eab39a 100644
--- a/devel/desktop-file-utils/Makefile
+++ b/devel/desktop-file-utils/Makefile
@@ -2,6 +2,7 @@
 
 PORTNAME=	desktop-file-utils
 PORTVERSION=	0.26
+PORTREVISION=	1
 CATEGORIES=	devel
 MASTER_SITES=	http://freedesktop.org/software/${PORTNAME}/releases/
 
@@ -11,18 +12,13 @@ COMMENT=	Couple of command line utilities for working with desktop entries
 LICENSE=	GPLv2+
 LICENSE_FILE=	${WRKSRC}/COPYING
 
-USES=		compiler:c11 gettext meson gnome pkgconfig tar:xz
+USES=		compiler:c11 gettext meson gnome pkgconfig trigger tar:xz
 USE_GNOME=	glib20
 
-PKGINSTALL=	${WRKDIR}/pkg-install
-PKGDEINSTALL=	${WRKDIR}/pkg-deinstall
-
-PORT_MIMEDIRS=	${LOCALBASE}/share/applications
-
-MIMEDIRS=	${PORT_MIMEDIRS}
-
-SUB_FILES=	pkg-deinstall pkg-install
+MIMEDIRS=	share/applications
 SUB_LIST=	MIMEDIRS="${MIMEDIRS}"
+PKGPOSTINSTALL=	${WRKDIR}/pkg-post-install
+SUB_FILES=	pkg-post-install.lua
 
 post-install:
 	${INSTALL_DATA} ${WRKSRC}/misc/desktop-entry-mode.el \
diff --git a/devel/desktop-file-utils/files/desktop-file-utils.ucl.in b/devel/desktop-file-utils/files/desktop-file-utils.ucl.in
new file mode 100644
index 000000000000..ed07df4f223f
--- /dev/null
+++ b/devel/desktop-file-utils/files/desktop-file-utils.ucl.in
@@ -0,0 +1,24 @@
+path: "%%PREFIX%%/%%MIMEDIRS%%"
+cleanup: {
+	type: lua
+	script: <<EOS
+local mimedir = "%%PREFIX%%/%%MIMEDIRS%%/"
+local cache = mimedir .. "mimeinfo.cache"
+local st = pkg.stat(cache)
+if st then
+	os.remove(cache)
+end
+local res = pkg.readdir(mimedir)
+if #res == 0 then
+	os.remove(mimrdir)
+end
+EOS
+}
+trigger: {
+	type: lua
+	sandbox: false
+	script: <<EOS
+print("Building cache database of MIME types")
+pkg.exec({"%%PREFIX%%/bin/update-desktop-database","-q"})
+EOS
+}
diff --git a/devel/desktop-file-utils/files/pkg-deinstall.in b/devel/desktop-file-utils/files/pkg-deinstall.in
deleted file mode 100644
index 1052c08f1529..000000000000
--- a/devel/desktop-file-utils/files/pkg-deinstall.in
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-#
-# Remove leftover mimeinfo.cache files.
-
-if [ "$2" != "POST-DEINSTALL" ]; then
-    exit 0
-fi
-
-for mdir in %%MIMEDIRS%%; do
-    if [ -f ${mdir}/mimeinfo.cache ]; then
-	rm -f ${mdir}/mimeinfo.cache
-    fi
-done
-
-exit 0
diff --git a/devel/desktop-file-utils/files/pkg-install.in b/devel/desktop-file-utils/files/pkg-install.in
deleted file mode 100644
index 8de802b51f15..000000000000
--- a/devel/desktop-file-utils/files/pkg-install.in
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-#
-# Initialize the desktop directories and MIME cache.
-
-if [ "$2" != "POST-INSTALL" ]; then
-    exit 0
-fi
-
-${PKG_PREFIX}/bin/update-desktop-database -q
-
-exit 0
diff --git a/devel/desktop-file-utils/files/pkg-post-install.lua.in b/devel/desktop-file-utils/files/pkg-post-install.lua.in
new file mode 100644
index 000000000000..0aec3ae32570
--- /dev/null
+++ b/devel/desktop-file-utils/files/pkg-post-install.lua.in
@@ -0,0 +1,2 @@
+print("Building cache database of MIME types")
+pkg.exec({"%%PREFIX%%/bin/update-desktop-database", "-q"})