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 | |
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.
-rw-r--r-- | autoscripts/postinst-icons | 7 | ||||
-rw-r--r-- | autoscripts/postrm-icons | 15 | ||||
-rw-r--r-- | debian/changelog | 9 | ||||
-rwxr-xr-x | dh_icons | 73 |
4 files changed, 103 insertions, 1 deletions
diff --git a/autoscripts/postinst-icons b/autoscripts/postinst-icons new file mode 100644 index 00000000..3c018b35 --- /dev/null +++ b/autoscripts/postinst-icons @@ -0,0 +1,7 @@ +if which gtk-update-icon-cache >/dev/null 2>&1; then
+ for dir in #DIRLIST#; do
+ if [ -f "$dir"/icon-theme.cache ]; then
+ gtk-update-icon-cache --force --quiet "$dir"
+ fi
+ done
+fi
diff --git a/autoscripts/postrm-icons b/autoscripts/postrm-icons new file mode 100644 index 00000000..3765560c --- /dev/null +++ b/autoscripts/postrm-icons @@ -0,0 +1,15 @@ +if [ "$1" = "remove" ]; then
+ for dir in #DIRLIST#; do
+ if [ -d "$dir" ]; then
+ if [ -f "$dir"/index.theme ] && \
+ [ -f "$dir"/icon-theme.cache ] && \
+ which gtk-update-icon-cache >/dev/null 2>&1
+ then
+ gtk-update-icon-cache --force --quiet "$dir"
+ else
+ rm -f "$dir"/icon-theme.cache
+ rmdir -p --ignore-fail-on-non-empty "$dir"
+ fi
+ fi
+ done
+fi
diff --git a/debian/changelog b/debian/changelog index 9874acd6..0462e8af 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,10 +1,17 @@ debhelper (5.0.51) UNRELEASED; urgency=low + * 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. * Remove possibly confusing (though strictly accurate) sentence from dh_installdirs.1. Closes: #429318 * dh_gencontrol: Fix man page typo. Closes: #431232 - -- Joey Hess <joeyh@debian.org> Sat, 30 Jun 2007 17:19:00 -0400 + -- Joey Hess <joeyh@debian.org> Sun, 08 Jul 2007 17:54:50 -0400 debhelper (5.0.50) unstable; urgency=low 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 |