diff options
author | joeyh <joeyh> | 2007-07-08 22:16:15 +0000 |
---|---|---|
committer | joeyh <joeyh> | 2007-07-08 22:16:15 +0000 |
commit | 780fefcdcfd21f335378899f2e20d92978b476e7 (patch) | |
tree | 8b31dea658bc3c86e5b55932c137dfaa855e6dd9 /dh_icons | |
parent | 02f72dd6d954aa64c5a617cc7fb1647cbefd6562 (diff) | |
download | debhelper-780fefcdcfd21f335378899f2e20d92978b476e7.tar.gz |
r2010: * dh_icons: New program to update Freedesktop icon caches. Thanks
to Josselin Mouette, Ross Burton, Jordi Mallach, and Loïc Minier.
Closes: #329460
* Note that as a transitional measure, dh_icons will currently only update
existing caches, and not create and new caches. Once everything is
updating the icon caches, this will be changed. See #329460 for the full
plan.
Diffstat (limited to 'dh_icons')
-rwxr-xr-x | dh_icons | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/dh_icons b/dh_icons new file mode 100755 index 00000000..aa077e47 --- /dev/null +++ b/dh_icons @@ -0,0 +1,73 @@ +#!/usr/bin/perl -w + +=head1 NAME + +dh_icons - Update Freedesktop icon caches + +=cut + +use strict; +use File::Find; +use Debian::Debhelper::Dh_Lib; + +=head1 SYNOPSIS + +B<dh_icons> [S<I<debhelper options>>] [B<-n>] + +=head1 DESCRIPTION + +dh_icons is a debhelper program that updates Freedesktop icon caches +when needed, using the gtk-update-icon-cache program provided by GTK+2.0. +Currently this program does not handle installation of the files, though it +may do so at a later date. It takes care of adding maintainer script +fragments to call F<gtk-update-icon-cache>. + +=head1 OPTIONS + +=over 4 + +=item B<-n>, B<--noscripts> + +Do not modify maintainer scripts. + +=cut + +init(); + +my $baseicondir="/usr/share/icons"; + +foreach my $package (@{$dh{DOPACKAGES}}) { + my $tmp=tmpdir($package); + my $icondir="$tmp$baseicondir"; + if (-d $icondir) { + my @dirlist; + opendir(DIRHANDLE, $icondir); + while (my $subdir = readdir(DIRHANDLE)) { + next if $subdir =~ /^\./; + my $needs_cache = 0; + find sub { + $needs_cache = 1 if -f and (/\.png$/ or /\.svg$/ or /\.jpg$/); + }, "$icondir/$subdir" ; + push @dirlist, "$baseicondir/$subdir" if $needs_cache; + } + if (@dirlist and ! $dh{NOSCRIPTS}) { + my $list=join(" ", @dirlist); + autoscript($package,"postinst","postinst-icons","s%#DIRLIST#%$list%"); + autoscript($package,"postrm","postrm-icons","s%#DIRLIST#%$list%"); + } + } +} + +=head1 SEE ALSO + +L<debhelper> + +This program is a part of debhelper. + +=head1 AUTHOR + +Ross Burton <ross@burtonini.com> +Jordi Mallach <jordi@debian.org> +Josselin Mouette <joss@debian.org> + +=cut |