git: 37c1a83366f0 - main - devel/desktop-file-utils: use trigger
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"})