diff options
Diffstat (limited to 'dh_installmenu')
-rwxr-xr-x | dh_installmenu | 96 |
1 files changed, 71 insertions, 25 deletions
diff --git a/dh_installmenu b/dh_installmenu index c077f215..420b2164 100755 --- a/dh_installmenu +++ b/dh_installmenu @@ -1,45 +1,91 @@ #!/usr/bin/perl -w -# -# Integration with debian menu system: -# -# If debian/menu file exists, save it to $TMP/usr/lib/menu/$PACKAGE -# If debian/menu-method file exists, save it to -# $TMP/etc/menu-methods/$PACKAGE -# -# Also, add to postinst and postrm. - -BEGIN { push @INC, "debian", "/usr/share/debhelper" } -use Dh_Lib; + +=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. 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/lib/menu/package in the package build directory. This is a debian menu +file. See L<menufile(5L)> 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 $PACKAGE (@{$dh{DOPACKAGES}}) { - $TMP=tmpdir($PACKAGE); - $menu=pkgfile($PACKAGE,"menu"); - $menu_method=pkgfile($PACKAGE,"menu-method"); +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/lib/menu") { - doit("install","-d","$TMP/usr/lib/menu"); + if (! -d "$tmp/usr/lib/menu") { + doit("install","-d","$tmp/usr/lib/menu"); } - doit("install","-p","-m644",$menu,"$TMP/usr/lib/menu/$PACKAGE"); + doit("install","-p","-m644",$menu,"$tmp/usr/lib/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") + 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"); + if (!-d "$tmp/etc/menu-methods") { + doit("install","-d","$tmp/etc/menu-methods"); } - doit("install","-p",$menu_method,"$TMP/etc/menu-methods/$PACKAGE"); + doit("install","-p",$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/"); + 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 |