-#!/bin/sh -e
-#
-# Integration with debian menu system:
-#
-# If debian/menu file exists, save it to debian/tmp/usr/lib/menu/$PACKAGE
-# If debian/menu-method file exists, save it to
-# debian/tmp/etc/menu-methods/$PACKAGE
-
-PATH=debian:$PATH:/usr/lib/debhelper
-source dh_lib
-
-if [ -e debian/menu ]; then
- if [ ! -d debian/tmp/usr/lib/menu ]; then
- doit "install -d debian/tmp/usr/lib/menu"
- fi
- doit "install -p -m644 debian/menu debian/tmp/usr/lib/menu/$PACKAGE"
-fi
-
-if [ -e debian/menu-method ]; then
- if [ ! -d debian/tmp/etc/menu-methods ]; then
- doit "install -d debian/tmp/etc/menu-methods"
- fi
- doit "install -p debian/menu-method debian/tmp/etc/menu-methods/$PACKAGE"
-fi
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installmenu - install debian menu files into package build directories
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_installmenu> [S<B<debhelper options>>] [B<-n>]
+
+=head1 DESCRIPTION
+
+dh_installmenu is a debhelper program that is responsible for installing
+files used by the debian menu package into package build directories.
+
+It also automatically generates the postinst and postrm commands needed to
+interface with the debian menu package. These commands are inserted into
+the maintainer scripts by dh_installdeb. See L<dh_installdeb(1)> for an
+explanation of how this works.
+
+If a file named debian/package.menu exists, then it is installed into
+usr/share/menu/package in the package build directory. This is a debian menu
+file. See L<menufile(5)> for its format.
+
+If a file named debian/package.menu-method exits, then it is installed into
+etc/menu-methods/package in the package build directory. This is a debian
+menu method file.
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-n>, B<--noscripts>
+
+Do not modify postinst/postrm scripts.
+
+=back
+
+=cut
+
+init();
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+ my $menu=pkgfile($package,"menu");
+ my $menu_method=pkgfile($package,"menu-method");
+
+ if ($menu ne '') {
+ if (! -d "$tmp/usr/share/menu") {
+ doit("install","-d","$tmp/usr/share/menu");
+ }
+ doit("install","-p","-m644",$menu,"$tmp/usr/share/menu/$package");
+
+ # Add the scripts if a menu-method file doesn't exist.
+ # The scripts for menu-method handle everything these do, too.
+ if ($menu_method eq "" && ! $dh{NOSCRIPTS}) {
+ autoscript($package,"postinst","postinst-menu");
+ autoscript($package,"postrm","postrm-menu")
+ }
+ }
+
+ if ($menu_method ne '') {
+ if (!-d "$tmp/etc/menu-methods") {
+ doit("install","-d","$tmp/etc/menu-methods");
+ }
+ doit("install","-p","-m644",$menu_method,"$tmp/etc/menu-methods/$package");
+
+ if (! $dh{NOSCRIPTS}) {
+ autoscript($package,"postinst","postinst-menu-method","s/#PACKAGE#/$package/");
+ autoscript($package,"postrm","postrm-menu-method","s/#PACKAGE#/$package/");
+ }
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+L<update-menus(1)>
+L<menufile(5)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut