X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=dh_installmime;h=a1b1b6b105876e2d347436a65005693b3036986d;hb=6b837cdf5e02beefe506018b46b49a41f19ea494;hp=0dbc08b41923d44a30b1cf06d465f1102d8e599c;hpb=67b74298f08a3e2b30e43cbcd7cdaccc2e1b1614;p=debhelper.git diff --git a/dh_installmime b/dh_installmime index 0dbc08b..a1b1b6b 100755 --- a/dh_installmime +++ b/dh_installmime @@ -1,23 +1,95 @@ #!/usr/bin/perl -w -# -# Mime support. +=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 $PACKAGE (@{$dh{DOPACKAGES}}) { - $TMP=tmpdir($PACKAGE); - $mime=pkgfile($PACKAGE,"mime"); +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"); + 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"); - - if (! $dh{NOSCRIPTS}) { - autoscript($PACKAGE,"postinst","postinst-mime"); - autoscript($PACKAGE,"postrm","postrm-mime") + 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