X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=bin%2Fapache.export;h=da2d73c1cfe6e6bc98e4dbbaa1d43593751fad38;hb=9270d54732d8cf73030555fdc32fa9ff929b22c2;hp=f0a6beefc950bab926f82ddd5af52d50233d0d32;hpb=eb9668a6f3181ee02cb335272c5ee4616e61fd09;p=freeside.git diff --git a/bin/apache.export b/bin/apache.export index f0a6beefc..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'); @@ -36,22 +43,43 @@ foreach my $export ( @exports ) { my @svc_www = $export->svc_x; foreach my $svc_www ( @svc_www ) { - use vars qw($zone $username); + use vars qw($zone $username $dir $email $config); $zone = $svc_www->domain_record->zone; - $username = $svc_www->svc_acct->username; + $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", } ) or die "rsync to $machine failed: ". join(" / ", $rsync->err); # warn $rsync->out; - ssh("root\@$machine", 'apachectl graceful'); + my $restart = $export->option('restart') || 'apachectl graceful'; + + warn "running restart command $restart on $machine\n" + if $opt{d}; + + ssh("root\@$machine", $restart); } @@ -60,6 +88,6 @@ close HTTPD_CONF; # ----- sub usage { - die "Usage:\n apache.export user\n"; + die "Usage:\n apache.export [ -d ] user\n"; }