X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=dh_installemacsen;h=ee6421229ba27e1ccf5b0feb1bc0b9f1347d5206;hb=e2a6d4cec4a7ee952cf6a7f250d80f1d75a38f95;hp=e87cecef687151d8959fe318b84e7bd1997547d8;hpb=a4caa9e05bc2b7e4ea034026cf0b2cda3461d4b2;p=debhelper.git diff --git a/dh_installemacsen b/dh_installemacsen index e87cece..ee64212 100755 --- a/dh_installemacsen +++ b/dh_installemacsen @@ -1,34 +1,134 @@ -#!/bin/sh -e -# -# Registration with emacsen-common. - -PATH=debian:$PATH:/usr/lib/debhelper -. dh_lib - -for PACKAGE in $DH_DOPACKAGES; do - TMP=`tmpdir $PACKAGE` - - emacsen_install=`pkgfile $PACKAGE emacsen-install` - emacsen_remove=`pkgfile $PACKAGE emacsen-remove` - - if [ "$emacsen_install" ]; then - if [ ! -d "$TMP/usr/lib/emacsen-common/packages/install" ]; then - doit "install -d $TMP/usr/lib/emacsen-common/packages/install" - fi - doit "install $emacsen_install $TMP/usr/lib/emacsen-common/packages/install/$PACKAGE" - fi - - if [ "$emacsen_remove" ]; then - if [ ! -d "$TMP/usr/lib/emacsen-common/packages/remove" ]; then - doit "install -d $TMP/usr/lib/emacsen-common/packages/remove" - fi - doit "install $emacsen_remove $TMP/usr/lib/emacsen-common/packages/remove/$PACKAGE" - fi - - if [ "$emacsen_install" -o "$emacsen_remove" ]; then - if [ ! "$DH_NOSCRIPTS" ]; then - autoscript "postinst" "postinst-emacsen" - autoscript "prerm" "prerm-emacsen" - fi - fi -done +#!/usr/bin/perl -w + +=head1 NAME + +dh_installemacsen - register an Emacs add on package + +=cut + +use strict; +use Debian::Debhelper::Dh_Lib; + +=head1 SYNOPSIS + +B [S>] [B<-n>] [B<--priority=>I] [B<--flavor=>I] + +=head1 DESCRIPTION + +B is a debhelper program that is responsible for installing +files used by the Debian B package into package build +directories. + +It also automatically generates the F and F commands needed to +register a package as an Emacs add on package. The commands are added to +the maintainer scripts by B. See L +for an explanation of how this works. + +=head1 FILES + +=over 4 + +=item debian/I.emacsen-install + +Installed into F in the +package build directory. + +=item debian/I.emacsen-remove + +Installed into F in the +package build directory. + +=item debian/I.emacsen-startup + +Installed into etc/emacs/site-start.d/50I.el in the package +build directory. Use B<--priority> to use a different priority than 50. + +=back + +=head1 OPTIONS + +=over 4 + +=item B<-n>, B<--noscripts> + +Do not modify F/F scripts. + +=item B<--priority=>I + +Sets the priority number of a F file. Default is 50. + +=item B<--flavor=>I + +Sets the flavor a F file will be installed in. Default is +B, alternatives include B and B. + +=back + +=head1 NOTES + +Note that this command is not idempotent. L 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(options => { + "flavor=s" => \$dh{FLAVOR}, +}); + +if (! defined $dh{PRIORITY}) { + $dh{PRIORITY}=50; +} +if (! defined $dh{FLAVOR}) { + $dh{FLAVOR}='emacs'; +} + +foreach my $package (@{$dh{DOPACKAGES}}) { + my $tmp=tmpdir($package); + + my $emacsen_install=pkgfile($package,"emacsen-install"); + my $emacsen_remove=pkgfile($package,"emacsen-remove"); + my $emacsen_startup=pkgfile($package,"emacsen-startup"); + + if ($emacsen_install ne '') { + if (! -d "$tmp/usr/lib/emacsen-common/packages/install") { + doit("install","-d","$tmp/usr/lib/emacsen-common/packages/install"); + } + doit("install","-m0755",$emacsen_install,"$tmp/usr/lib/emacsen-common/packages/install/$package"); + } + + if ($emacsen_remove ne '') { + if (! -d "$tmp/usr/lib/emacsen-common/packages/remove") { + doit("install","-d","$tmp/usr/lib/emacsen-common/packages/remove"); + } + doit("install","-m0755","$emacsen_remove","$tmp/usr/lib/emacsen-common/packages/remove/$package"); + } + + if ($emacsen_startup ne '') { + if (! -d "$tmp/etc/$dh{FLAVOR}/site-start.d/") { + doit("install","-d","$tmp/etc/$dh{FLAVOR}/site-start.d/"); + } + doit("install","-m0644",$emacsen_startup,"$tmp/etc/$dh{FLAVOR}/site-start.d/$dh{PRIORITY}$package.el"); + } + + if ($emacsen_install ne '' || $emacsen_remove ne '') { + if (! $dh{NOSCRIPTS}) { + autoscript($package,"postinst","postinst-emacsen", + "s/#PACKAGE#/$package/"); + autoscript($package,"prerm","prerm-emacsen", + "s/#PACKAGE#/$package/"); + } + } +} + +=head1 SEE ALSO + +L + +This program is a part of debhelper. + +=head1 AUTHOR + +Joey Hess + +=cut