#!@@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('', ); 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"; }