#!/usr/bin/perl -w =head1 NAME dh_installmime - install mime files into package build directories =cut use strict; use Debian::Debhelper::Dh_Lib; =head1 SYNOPSIS B [S>] [B<-n>] =head1 DESCRIPTION dh_installmime is a debhelper program that is responsible for installing mime files into package build directories. It also automatically generates the postinst and postrm commands needed to interface with the debian mime-support and shared-mime-info packages. These commands are inserted into the maintainer scripts by dh_installdeb. See L for an explanation of how this works. If files named debian/package.mime or debian/package.sharedmimeinfo exist, then they are installed into usr/lib/mime/packages/package and /usr/share/mime/packages/package.xml (respectively) in the package build directory. =head1 OPTIONS =over 4 =item B<-n>, B<--noscripts> Do not modify postinst/postrm scripts. =back =head1 NOTES Note that this command is not idempotent. "dh_clean -k" should be called between invocations of this command. Otherwise, it may cause multiple instances of the same text to be added to maintainer scripts. =cut init(); foreach my $package (@{$dh{DOPACKAGES}}) { my $tmp=tmpdir($package); my $mime=pkgfile($package,"mime"); if ($mime ne '') { if (! -d "$tmp/usr/lib/mime/packages") { doit("install","-d","$tmp/usr/lib/mime/packages"); } doit("install","-p","-m644",$mime,"$tmp/usr/lib/mime/packages/$package"); } # Check wether we have to call update-mime (either upstream already # installs a MIME information file or Debian provides one) if ((! $dh{NOSCRIPTS}) && (-d "$tmp/usr/lib/mime/packages")) { autoscript($package,"postinst","postinst-mime"); autoscript($package,"postrm","postrm-mime") } my $sharedmimeinfo=pkgfile($package,"sharedmimeinfo"); if ($sharedmimeinfo ne '') { if (! -d "$tmp/usr/share/mime/packages") { doit("install", "-d", "$tmp/usr/share/mime/packages"); } doit("install", "-p", "-m644", $sharedmimeinfo, "$tmp/usr/share/mime/packages/$package.xml"); } # check wether we have to call update-mime-database (either upstream # already installs a shared MIME information file or Debian provides # one) if ((! $dh{NOSCRIPTS}) && (-d "$tmp/usr/share/mime/packages")) { autoscript($package, "postinst", "postinst-sharedmimeinfo"); autoscript($package, "postrm", "postrm-sharedmimeinfo") } } =head1 SEE ALSO L This program is a part of debhelper. =head1 AUTHOR Joey Hess =cut