mirror of
https://git.freebsd.org/ports.git
synced 2025-06-17 10:40:46 -04:00
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
30 lines
819 B
Text
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
|
|
}
|