]> git.donarmstrong.com Git - debhelper.git/blobdiff - dh_installinit
dh_scrollkeeper: Now a deprecated no-op. Closes: #530806
[debhelper.git] / dh_installinit
index 248d517f0b1c90e4d6074b24d1ba7563f7bb14c9..2f32b46be9f0e9e9f5e17ff7fc80d44da9e6dc3c 100755 (executable)
@@ -11,7 +11,7 @@ use Debian::Debhelper::Dh_Lib;
 
 =head1 SYNOPSIS
 
-B<dh_installinit> [S<I<debhelper options>>] [B<--name=>I<name>] [B<-n>] [B<-r>] [B<-d>] [S<B<--> I<params>>]
+B<dh_installinit> [S<I<debhelper options>>] [B<--name=>I<name>] [B<-n>] [B<-R>] [B<-r>] [B<-d>] [S<B<--> I<params>>]
 
 =head1 DESCRIPTION
 
@@ -45,9 +45,20 @@ script or default files. May be useful if the init script is shipped and/or
 installed by upstream in a way that doesn't make it easy to let
 dh_installinit find it.
 
+=item B<-R>, B<--restart-after-upgrade>
+
+Do not stop the init script until after the package upgrade has been
+completed. This is different than the default behavior, which stops the
+script in the prerm, and starts it again in the postinst.
+
+This can be useful for daemons that should not have a possibly long
+downtime during upgrade. But you should make sure that the daemon will not
+get confused by the package being upgraded while it's running before using
+this option.
+
 =item B<-r>, B<--no-restart-on-upgrade>
 
-Do not restart init script on upgrade.
+Do not stop init script on upgrade.
 
 =item B<--no-start>
 
@@ -104,7 +115,15 @@ instances of the same text to be added to maintainer scripts.
 
 =cut
 
-init();
+init(options => {
+       "r" => \$dh{R_FLAG},
+       "no-restart-on-upgrade" => \$dh{R_FLAG},
+       "no-start" => \$dh{NO_START},
+       "R|restart-after-upgrade" => \$dh{RESTART_AFTER_UPGRADE},
+       "init-script=s" => \$dh{INIT_SCRIPT},
+       "update-rcd-params=s", => \$dh{U_PARAMS},
+       "remove-d" => \$dh{D_FLAG},
+});
 
 foreach my $package (@{$dh{DOPACKAGES}}) {
        my $tmp=tmpdir($package);
@@ -166,11 +185,19 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
                 
                if (! $dh{NOSCRIPTS}) {
                        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{RESTART_AFTER_UPGRADE}) {
+                                       # update-rc.d, and restart (or
+                                       # start if new install) script
+                                       autoscript($package,"postinst", "postinst-init-restart",
+                                               "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/;s/#ERROR_HANDLER#/$dh{ERROR_HANDLER}/");
+                               }
+                               else {
+                                       # 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}) {
+                               if ($dh{R_FLAG} || $dh{RESTART_AFTER_UPGRADE}) {
                                        # stops script only on remove
                                        autoscript($package,"prerm","prerm-init-norestart",
                                                "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/;s/#ERROR_HANDLER#/$dh{ERROR_HANDLER}/");