aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2021-11-04 09:38:08 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2021-11-04 16:38:33 +0000
commitbfb64865610ab98c0bfdb30a7cef4e8f3f8d3b84 (patch)
tree7fc0a1ff1f546a01d18c40ea2605c11490a18b1f
parent7f73a93ef2a0fdab0431357e772c583b9652d781 (diff)
downloadports-bfb64865610ab98c0bfdb30a7cef4e8f3f8d3b84.tar.gz
ports-bfb64865610ab98c0bfdb30a7cef4e8f3f8d3b84.zip
misc/shared-mime-info: fix cleanup
update-mime-database generates tons of xml files during the trigger execution, cleanup should remove them Reported by: many
-rw-r--r--misc/shared-mime-info/Makefile2
-rw-r--r--misc/shared-mime-info/files/shared-mime-info.ucl.in21
2 files changed, 19 insertions, 4 deletions
diff --git a/misc/shared-mime-info/Makefile b/misc/shared-mime-info/Makefile
index bc81d9447691..a76c9a38c9a2 100644
--- a/misc/shared-mime-info/Makefile
+++ b/misc/shared-mime-info/Makefile
@@ -2,7 +2,7 @@
PORTNAME= shared-mime-info
DISTVERSION= 2.0
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= misc gnome
MAINTAINER= desktop@FreeBSD.org
diff --git a/misc/shared-mime-info/files/shared-mime-info.ucl.in b/misc/shared-mime-info/files/shared-mime-info.ucl.in
index 38d1d2cfec04..2049db0caa5e 100644
--- a/misc/shared-mime-info/files/shared-mime-info.ucl.in
+++ b/misc/shared-mime-info/files/shared-mime-info.ucl.in
@@ -4,7 +4,7 @@ cleanup: {
script: <<EOS
local mimedir = "%%PREFIX%%/share/mime/"
local files = { "XMLnamespaces", "aliases", "generic-icons", "globs", "globs2", "icons", "mime.cache", "subclasses", "treemagic", "types", "version"}
-for _,filename in pairs(files) do
+for _,filename in ipairs(files) do
local fpath = mimedir .. filename
local st = pkg.stat(fpath)
if st then
@@ -12,9 +12,24 @@ for _,filename in pairs(files) do
end
end
local res = pkg.readdir(mimedir)
-if #res == 0 then
- os.remove(mimedir)
+if res == nil then goto cleanmime end
+
+for _,dir in ipairs(res) do
+ if dir == "packages" then goto continue end
+
+ local directory = mimedir .. "/" .. dir
+ local r = pkg.readdir(directory)
+ if r == nil then goto cleandir end
+ for _,file in ipairs(r) do
+ os.remove(directory .. "/" .. file)
+ end
+ ::cleandir::
+ os.remove(directory)
+
+ ::continue::
end
+::cleanmime::
+os.remove(mimedir)
EOS
}
trigger: {