1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
#!/usr/bin/perl -w
#
# Install debian/init[.d], and set up the postinst and postrm for init
# scripts.
BEGIN { push @INC, "debian", "/usr/share/debhelper" }
use Dh_Lib;
init();
foreach $PACKAGE (@{$dh{DOPACKAGES}}) {
$TMP=tmpdir($PACKAGE);
# Figure out what filename to install it as.
my $script;
if ($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.
$script=$PACKAGE;
if ($script=~m/(.*)d$/) {
$script=$1;
}
else {
warning("\"$PACKAGE\" has no final d' in its name, but -d was specified.");
}
}
elsif ($dh{INIT_SCRIPT}) {
$script=$dh{INIT_SCRIPT};
}
else {
$script=$PACKAGE;
}
$init=pkgfile($PACKAGE,$script) || pkgfile($PACKAGE,"init") ||
pkgfile($PACKAGE,"init.d");
if ($init ne '') {
if (! -d "$TMP/etc/init.d") {
doit("install","-d","$TMP/etc/init.d");
}
doit("install","-p","-m755",$init,"$TMP/etc/init.d/$script");
# This is set by the -u "foo" command line switch, it's
# the parameters to pass to update-rc.d. If not set,
# we have to say "defaults".
my $params='';
if (defined($dh{U_PARAMS})) {
$params=join(' ',@{$dh{U_PARAMS}});
}
if ($params eq '') {
$params="defaults";
}
if (! $dh{NOSCRIPTS}) {
# -r on the command line sets R_FLAG. If it's set, there
# is no restart on upgrade.
if ($dh{R_FLAG}) {
autoscript($PACKAGE,"postinst","postinst-init-norestart",
"s/#SCRIPT#/$script/;s/#INITPARMS#/$params/");
autoscript($PACKAGE,"postrm","postrm-init",
"s/#SCRIPT#/$script/;s/#INITPARMS#/$params/");
}
else {
autoscript($PACKAGE,"postinst","postinst-init",
"s/#SCRIPT#/$script/;s/#INITPARMS#/$params/");
autoscript($PACKAGE,"postrm","postrm-init",
"s/#SCRIPT#/$script/;s/#INITPARMS#/$params/");
autoscript($PACKAGE,"prerm","prerm-init",
"s/#SCRIPT#/$script/;s/#INITPARMS#/$params/");
}
}
}
}
|