X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=bin%2Fapache.export;h=02dd58a2dae2d4cb7f8b75ecbebcf9bf8d9118af;hp=47863a9d56d5b4005879f1ee57e0255c4b67e800;hb=d5109b4395d35a615f36fc7629803c24d489c516;hpb=b8cfd0780aa40bb07f3215bf9cb58011f5e32a35 diff --git a/bin/apache.export b/bin/apache.export index 47863a9d5..02dd58a2d 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; @@ -26,25 +30,50 @@ my $rsync = File::Rsync->new({ foreach my $export ( @exports ) { - my $machine = $export->machine; - my $file = "$spooldir/$machine.conf"; + my $machine = $export->machine; + my $exportnum = $export->exportnum; + my $file = "$spooldir/$machine.exportnum$exportnum.conf"; - open(HTTPD_CONF,">$file") or die "can't open $file: $!"; + warn "exporting apache configuration for $machine to $file\n" + if $opt{d}; - my $template = $export->option('template'); + open(HTTPD_CONF,">$file") or die "can't open $file: $!"; 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; + my $template = $export->option('template'); + my $cust_pkg = $svc_www->cust_svc->cust_pkg; + if ( $cust_pkg->getfield('susp') or $cust_pkg->getfield('cancel') ) { + $template = $export->option('template_inactive') + || $export->option('template'); + # Fall back to the regular template if template_inactive doesn't exist + } + 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", @@ -53,6 +82,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); } @@ -62,6 +94,6 @@ close HTTPD_CONF; # ----- sub usage { - die "Usage:\n apache.export user\n"; + die "Usage:\n apache.export [ -d ] user\n"; }