X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=bin%2Fapache.export;h=da2d73c1cfe6e6bc98e4dbbaa1d43593751fad38;hb=07a313acb1d91488c6aa6044771f3136d5a6fe11;hp=b39b5f1a2ae5f71eb9e903f28ac66c3219b176e3;hpb=8a507f43bfa5c5232b5babfbbf82ac5de5702add;p=freeside.git diff --git a/bin/apache.export b/bin/apache.export index b39b5f1a2..da2d73c1c 100755 --- a/bin/apache.export +++ b/bin/apache.export @@ -1,6 +1,7 @@ #!/usr/bin/perl -w use strict; +use Getopt::Std; #use File::Path; use File::Rsync; use Net::SSH qw(ssh); @@ -10,6 +11,9 @@ use FS::part_export; use FS::cust_svc; use FS::svc_www; +use vars qw(%opt); +getopts("d", \%opt); + my $user = shift or die &usage; adminsuidsetup $user; @@ -29,6 +33,9 @@ foreach my $export ( @exports ) { my $machine = $export->machine; my $file = "$spooldir/$machine.conf"; + warn "exporting apache configuration for $machine to $file\n" + if $opt{d}; + open(HTTPD_CONF,">$file") or die "can't open $file: $!"; my $template = $export->option('template'); @@ -38,16 +45,29 @@ foreach my $export ( @exports ) { foreach my $svc_www ( @svc_www ) { use vars qw($zone $username $dir $email $config); $zone = $svc_www->domain_record->zone; - $username = $svc_www->svc_acct->username; - $dir = $svc_www->svc_acct->dir; - $email = $svc_www->svc_acct->email; $config = $svc_www->config; + if ( $svc_www->svc_acct ) { + $username = $svc_www->svc_acct->username; + $dir = $svc_www->svc_acct->dir; + $email = $svc_www->svc_acct->email; + } else { + $username = ''; + $dir = ''; + $email = ''; + } + + warn " adding configuration section for $zone\n" + if $opt{d}; + print HTTPD_CONF eval(qq("$template")). "\n\n"; } my $user = $export->option('user'); my $httpd_conf = $export->option('httpd_conf'); + warn "syncing $file to $httpd_conf on $machine\n" + if $opt{d}; + $rsync->exec( { src => $file, dest => "$user\@$machine:$httpd_conf", @@ -56,6 +76,9 @@ foreach my $export ( @exports ) { my $restart = $export->option('restart') || 'apachectl graceful'; + warn "running restart command $restart on $machine\n" + if $opt{d}; + ssh("root\@$machine", $restart); } @@ -65,6 +88,6 @@ close HTTPD_CONF; # ----- sub usage { - die "Usage:\n apache.export user\n"; + die "Usage:\n apache.export [ -d ] user\n"; }