| #! /usr/local/bin/perl |
| use File::Find; |
| use strict; |
| my $APACHE_SRC = shift; |
| |
| my $LoadModule_conf = "t/conf/LoadModule.conf"; |
| my $tmp = "t/conf/httpd.conf.new"; |
| my $orig = "t/conf/httpd.conf"; |
| |
| local *ORIG; |
| open ORIG, $orig or die "can't open $orig $!"; |
| while(<ORIG>) { |
| if(/^LoadModule/) { |
| exit 0; #already cat-ed |
| } |
| } |
| unless (-d "t") { |
| chdir ".."; |
| } |
| #phooey, this mess should have been cleaned up before 1.3.0 |
| my $name_map = { |
| log_config => "config_log", |
| include => "includes", |
| actions => "action", |
| auth_anon => "anon_auth", |
| auth_dbm => "dbm_auth", |
| log_agent => "agent_log", |
| log_referer => "referer_log" |
| }; |
| |
| my @sh_mods = (); |
| finddepth(sub { |
| return unless /(mod_|lib)(.*)\.s[ol]$/; |
| my $name = $name_map->{$2} || $2; |
| my $full = "$File::Find::dir/$_"; |
| if($full !~ m,^/,) { |
| if($full =~ m,^\.\./,) { |
| $full = "../$full"; |
| } |
| } |
| return if $name =~ /(auth|autoindex|digest)/; #a few that screw make test |
| push @sh_mods, "LoadModule ${name}_module $full"; |
| }, $APACHE_SRC) if $APACHE_SRC and -d $APACHE_SRC; |
| |
| my($perl_mod) = grep /perl/, @sh_mods; |
| unshift @sh_mods, $perl_mod; #must come before mod_include/USE_PERL_SSI |
| |
| my %seen; |
| |
| local *FH; |
| open FH, ">$LoadModule_conf" or |
| die "can't open $LoadModule_conf $!"; |
| print FH join "\n", (grep { !$seen{$_}++ } @sh_mods), ""; |
| close FH; |
| |
| system "cat $LoadModule_conf $orig > $tmp && mv $tmp $orig"; |
| |