mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-20 04:02:27 +00:00
86a8822091
mod_v2h is a mass virtual hosting module for Apache, it uses mySQL for holding its data. I needed to install on a system, so I figured I might as well write a port for it while I was at it :) PR: ports/37803 Submitted by: hikari-chan <hikari@hikari.org.uk>
62 lines
1.5 KiB
Plaintext
62 lines
1.5 KiB
Plaintext
#!@@PERL@@
|
|
|
|
# This was stolen from the Apache apxs script
|
|
$CFG_SYSCONFDIR = "@@LOCAL@@/etc/apache2";
|
|
$CFG_TARGET = "httpd";
|
|
$name = "v2h";
|
|
$dir = "libexec/apache2/";
|
|
$t = "mod_v2h.so";
|
|
|
|
push(@lmd, sprintf("LoadModule %-18s %s", "${name}_module", "$dir$t"));
|
|
|
|
open(FP, "<$CFG_SYSCONFDIR/$CFG_TARGET.conf") || die("Couldn't open conf file");
|
|
my $content = join('', <FP>);
|
|
close(FP);
|
|
|
|
if ($content !~ m|\n#?\s*LoadModule\s+|) {
|
|
error("Activation failed for custom $CFG_SYSCONFDIR/$CFG_TARGET.conf file.");
|
|
error("At least one `LoadModule' directive already has to exist.");
|
|
exit(1);
|
|
}
|
|
|
|
my $lmd;
|
|
my $c = '';
|
|
|
|
foreach $lmd (@lmd) {
|
|
if ($content !~ m|\n#?\s*$lmd|) {
|
|
$content =~ s|^(.*\n#?\s*LoadModule\s+[^\n]+\n)|$1$c$lmd\n|sg;
|
|
} else {
|
|
$content =~ s|^(.*\n)#?\s*$lmd[^\n]*\n|$1$c$lmd\n|sg;
|
|
}
|
|
|
|
$lmd =~ m|LoadModule\s+(.+?)_module.*|;
|
|
notice("[activating module `$1' in $CFG_SYSCONFDIR/$CFG_TARGET.conf]");
|
|
}
|
|
|
|
my $amd;
|
|
|
|
foreach $amd (@amd) {
|
|
if ($content !~ m|\n#?\s*$amd|) {
|
|
$content =~ s|^(.*\n#?\s*AddModule\s+[^\n]+\n)|$1$c$amd\n|sg;
|
|
} else {
|
|
$content =~ s|^(.*\n)#?\s*$amd[^\n]*\n|$1$c$amd\n|sg;
|
|
}
|
|
}
|
|
|
|
if (@lmd or @amd) {
|
|
if (open(FP, ">$CFG_SYSCONFDIR/$CFG_TARGET.conf.new")) {
|
|
print FP $content;
|
|
close(FP);
|
|
system("cp $CFG_SYSCONFDIR/$CFG_TARGET.conf $CFG_SYSCONFDIR/$CFG_TARGET.conf.bak && " . "cp $CFG_SYSCONFDIR/$CFG_TARGET.conf.new $CFG_SYSCONFDIR/$CFG_TARGET.conf && " . "rm $CFG_SYSCONFDIR/$CFG_TARGET.conf.new");
|
|
} else {
|
|
notice("unable to open configuration file");
|
|
}
|
|
|
|
}
|
|
|
|
sub notice{
|
|
print STDERR "$_[0]\n";
|
|
}
|
|
|
|
|