#!/usr/bin/perl -w

=head1 NAME

dh_desktop - Register .desktop files

=cut

use strict;
use Debian::Debhelper::Dh_Lib;

=head1 SYNOPSIS

B<dh_desktop> [S<I<debhelper options>>]

=head1 DESCRIPTION

dh_desktop is a debhelper program that registers .desktop files.
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<update-desktop-database>.

Note that since F<update-desktop-database> currently only handles mime
types, as an optimisation, desktop files not containing MimeType fields
will currently  be ignored by dh_desktop.

=cut

init();

foreach my $package (@{$dh{DOPACKAGES}}) {
	my $tmp=tmpdir($package);

	if (-d "$tmp/usr/share/applications") {
		# Get a list of the desktop files that are in
		# usr/share/applications and thus might need
		# update-desktop-database be called. Other desktop
		# files don't.
		my $desktop_files = `find $tmp/usr/share/applications -type f -name \\*.desktop -execdir grep -q "^MimeType" '{}' \\; -printf '%p\n'`;
		if ($desktop_files && ! $dh{NOSCRIPTS}) {
			autoscript($package,"postinst","postinst-desktop");
			autoscript($package,"postrm","postrm-desktop");
		}
	}
}

=head1 SEE ALSO

L<debhelper>

This program is a part of debhelper.

=head1 AUTHOR

Ross Burton <ross@burtonini.com>

=cut