#!/usr/bin/perl use strict; use File::Basename; use File::Spec; use Cwd; # calculate paths my $foswiki_core = Cwd::abs_path( File::Spec->catdir( dirname(__FILE__), '..' ) ); chomp $foswiki_core; unshift @INC, $foswiki_core . '/lib'; require Foswiki; require Foswiki::Contrib::VirtualHostingContrib; my $dir = $Foswiki::cfg{VirtualHostingContrib}{VirtualHostsDir}; $dir = Cwd::abs_path($dir); my @virtualhosts = grep { -d $_ } grep {!/\/_/} glob("$dir/*"); push @virtualhosts, undef; my %serverAliases = (); while (my ($key, $val) = each %{$Foswiki::cfg{VirtualHostingContrib}{ServerAlias}}) { $key =~ s/([\.\-])/\\$1/g; push @{$serverAliases{$val}}, $key; } for my $vhost (@virtualhosts) { next unless $vhost; my $hostname = basename($vhost); print STDERR "... creating vhost $hostname\n"; my $origHostname = $hostname; $hostname =~ s/([\.\-])/\\$1/g; my $pattern = '^('.join("|",($hostname, @{$serverAliases{$origHostname}})).')$'; my $config = <