X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=dh_installinit;h=aba32b8498892477003ea109a555476773ab70f3;hb=269a2b129ec031f94e54dca7f526b2127aaf599f;hp=c5652c457094f193796cc2d8dd02de0f562964f6;hpb=2486063234469e39cce67055c5bd0644213724cf;p=debhelper.git diff --git a/dh_installinit b/dh_installinit index c5652c4..aba32b8 100755 --- a/dh_installinit +++ b/dh_installinit @@ -11,7 +11,7 @@ use Debian::Debhelper::Dh_Lib; =head1 SYNOPSIS -B [S>] [B<--init-script=>I] [B<-n>] [B<-r>] [B<-d>] [S I>] +B [S>] [B<--name=>I] [B<-n>] [B<-r>] [B<-d>] [S I>] =head1 DESCRIPTION @@ -40,7 +40,12 @@ Do not modify postinst/postrm/prerm scripts. =item B<-r>, B<--no-restart-on-upgrade> -Do not restart daemon on upgrade. +Do not restart init script on upgrade. + +=item B<--no-start> + +Do not start the init script on install or upgrade, or stop it on removal. +Only call update-rc.d. Useful for rcS scripts. =item B<-d>, B<--remove-d> @@ -57,16 +62,30 @@ described below.) Pass "params" to L. If not specified, "defaults" will be passed to L. +=item B<--name=>I + +Install the init script (and default file) using the filename I +instead of the default filename, which is the package name. When this +parameter is used, dh_installinit looks for and installs files named +debian/package.name.init and debian/package.name.default, instead of the +usual debian/package.init and debian/package.default. + =item B<--init-script=>I -Use "scriptname" as for the filename the init script is installed as in +Use "scriptname" as the filename the init script is installed as in etc/init.d/ (and also use it as the filename for the defaults file, if it -is installed). This is useful if you need to have an init script with a name -different from the package's name. Note that if you use this parameter, -dh_installinit will look to see if a file in the debian/ directory exists -that looks like "package.scriptname" and if so will install it as the init -script in preference to the files it normally installs. This feature is really -only useful if you need a single package to install more than one init script. +is installed). If you use this parameter, dh_installinit will look to see +if a file in the debian/ directory exists that looks like +"package.scriptname" and if so will install it as the init script in +preference to the files it normally installs. + +This parameter is deprecated, use the --name parameter instead. + +=item B<--error-handler=>I + +Call the named shell function if running the init script fails. The +function should be provided in the prerm and postinst scripts, before the +#DEBHELPER# token. =back @@ -85,7 +104,10 @@ foreach my $package (@{$dh{DOPACKAGES}}) { # Figure out what filename to install it as. my $script; - if ($dh{D_FLAG}) { + if (defined $dh{NAME}) { + $script=$dh{NAME}; + } + elsif ($dh{D_FLAG}) { # -d on the command line sets D_FLAG. We will # remove a trailing 'd' from the package name and # use that as the name. @@ -103,7 +125,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) { else { $script=$package; } - + my $init=pkgfile($package,$script) || pkgfile($package,"init") || pkgfile($package,"init.d"); my $default=pkgfile($package,'default'); @@ -132,36 +154,40 @@ foreach my $package (@{$dh{DOPACKAGES}}) { if ($params eq '') { $params="defaults"; } - - my $substvaradded=0; + if (! $dh{NOSCRIPTS}) { - autoscript($package,"postinst", "postinst-init", - "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/"); - # -r on the command line sets R_FLAG. If it's set, - # there is no restart on upgrade, so don't stop - # daemon. (It's ok that it's always started.) - if ($dh{R_FLAG}) { - autoscript($package,"prerm","prerm-init-norestart", - "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/"); + if (! $dh{NO_START}) { + # update-rc.d, and start script + autoscript($package,"postinst", "postinst-init", + "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/;s/#ERROR_HANDLER#/$dh{ERROR_HANDLER}/"); + + if ($dh{R_FLAG}) { + # stops script only on remove + autoscript($package,"prerm","prerm-init-norestart", + "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/;s/#ERROR_HANDLER#/$dh{ERROR_HANDLER}/"); + } + else { + # always stops script + autoscript($package,"prerm","prerm-init", + "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/;s/#ERROR_HANDLER#/$dh{ERROR_HANDLER}/"); + } } else { - autoscript($package,"prerm","prerm-init", - "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/"); + # just update-rc.d + autoscript($package,"postinst", "postinst-init-nostart", + "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/;s/#ERROR_HANDLER#/$dh{ERROR_HANDLER}/"); } - autoscript($package,"postrm","postrm-init", - "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/"); - } - if (! $substvaradded) { - # Remove it, for idemotency's sake. - addsubstvar($package, "misc:Depends", "sysvinit", ">= 2.80-1", 1); + # removes rc.d links + autoscript($package,"postrm","postrm-init", + "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/;s/#ERROR_HANDLER#/$dh{ERROR_HANDLER}/"); } } } =head1 SEE ALSO -L +L This program is a part of debhelper.