ports/graphics/gtk-update-icon-cache/files/gtk-update-icon-cache.ucl.in
Baptiste Daroussin 46bcb098c8 graphics/gtk-update-icon-cache: use triggers
Use triggers instead of enforcing the INSTALL_ICONS which enforces
gtk-update-icon-cache dependency on every ports installing icons.

The bonus:
- factorize gtk-update-icon-cache update at the end of the build
- stop adding a gratuicious dependency on gtk-update-icon-cache on
  packages which do not need it
- works on packages where INSTALLS_ICONS were forgotten

PR:			258502
Exp-run:		antoine
Reviewed by:		tcberner
Differential Revision:	https://reviews.freebsd.org/D31960
2021-10-10 19:46:46 +02:00

30 lines
819 B
Text

path_glob: "*/share/icons/*"
trigger: {
type: lua
sandbox: false
script: <<EOS
-- make sure we only get the path one level after share/icons
-- Ensure each path is uniq
local hash = {}
for _,path in ipairs(arg) do
path = string.match(path, ".*share/icons/[^/]*")
if (not hash[path]) and pkg.stat(path) then
local res = pkg.readdir(path)
if #res == 1 and res[1] == "icon-theme.cache" then
os.remove(path .. "/" .. res[1])
os.remove(path)
-- remove share icons if empty
local share_icons = path:gsub("(.*share/icons)/.*", "%1")
local res = pkg.readdir(share_icons)
if #res == 0 then
os.remove(share_icons)
end
else
print("Generating GTK icon cache for " .. path)
pkg.exec({"%%PREFIX%%/bin/gtk-update-icon-cache", "-q", "-t", "-f", path})
end
hash[path] = true
end
end
EOS
}