#!/usr/bin/perl -w
use strict;
+use Getopt::Std;
#use File::Path;
use File::Rsync;
use Net::SSH qw(ssh);
use FS::cust_svc;
use FS::svc_www;
+use vars qw(%opt);
+getopts("d", \%opt);
+
my $user = shift or die &usage;
adminsuidsetup $user;
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;
- print HTTPD_CONF eval(qq("$template"));
+ $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",
} ) 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);
}
# -----
sub usage {
- die "Usage:\n apache.export user\n";
+ die "Usage:\n apache.export [ -d ] user\n";
}