diff options
author | ivan <ivan> | 2003-03-20 03:41:03 +0000 |
---|---|---|
committer | ivan <ivan> | 2003-03-20 03:41:03 +0000 |
commit | 9aec22e5fd00800c6e7952ae5b85cc639d4b1e78 (patch) | |
tree | 11544ec21fa991b75933bc55c73bcc354e4cfd98 /bin | |
parent | 6609285a50f6c9110ae8d5a26a767fd895f1e325 (diff) |
apache export!
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/apache.export | 65 | ||||
-rwxr-xr-x | bin/bind.export | 7 | ||||
-rwxr-xr-x | bin/bsdshell.export | 7 | ||||
-rwxr-xr-x | bin/sysvshell.export | 7 |
4 files changed, 68 insertions, 18 deletions
diff --git a/bin/apache.export b/bin/apache.export new file mode 100755 index 000000000..6142c92b4 --- /dev/null +++ b/bin/apache.export @@ -0,0 +1,65 @@ +#!/usr/bin/perl -w + +use strict; +#use File::Path; +use File::Rsync; +use Net::SSH qw(ssh); +use FS::UID qw(adminsuidsetup datasrc); +use FS::Record qw(qsearch qsearchs); +use FS::part_export; +use FS::cust_svc; +use FS::svc_www; + +my $user = shift or die &usage; +adminsuidsetup $user; + +#needs the export number in there somewhere too...? +my $spooldir = "/usr/local/etc/freeside/export.". datasrc. "/apache"; +mkdir $spooldir, 0700 unless -d $spooldir; + +my @exports = qsearch('part_export', { 'exporttype' => 'apache' } ); + +my $rsync = File::Rsync->new({ + rsh => 'ssh', +# dry_run => 1, +}); + +foreach my $export ( @exports ) { + + my $machine = $export->machine; + my $file = "$spooldir/$machine.conf"; + + open(HTTPD_CONF,">$file") or die "can't open $file: $!"; + + my $template = $export->option('template'); + + my @svc_www = $export->svc_x; + + foreach my $svc_www ( @svc_www ) { + use vars qw($zone $username); + $zone = $svc_www->domain_record->zone; + $username = $svc_www->svc_acct->username; + print HTTPD_CONF eval(qq("$template")); + } + + my $user = $export->option('user'); + my $httpd_conf = $export->option('httpd_conf') + + $rsync->exec( { + src => $file, + dest => "$user\@$machine:$httpd_conf", + } ) or die "rsync to $machine failed: ". join(" / ", $rsync->err); + # warn $rsync->out; + + ssh("root\@$machine", 'ndc reload'); + +} + +close NAMED_CONF; + +# ----- + +sub usage { + die "Usage:\n export.export user\n"; +} + diff --git a/bin/bind.export b/bin/bind.export index 943aefbb0..055782a20 100755 --- a/bin/bind.export +++ b/bin/bind.export @@ -46,12 +46,7 @@ foreach my $export ( @exports ) { my $zonepath = $export->option('zonepath'); $zonepath =~ s/\/$//; - #false laziness with freeside-sqlradius-reset and shell.export - my @svc_domain = - map { qsearchs('svc_domain', { 'svcnum' => $_->svcnum } ) } - map { qsearch('cust_svc', { 'svcpart' => $_->svcpart } ) } - grep { qsearch('cust_svc', { 'svcpart' => $_->svcpart } ) } - $export->export_svc; + my @svc_domain = $export->svc_x; foreach my $svc_domain ( @svc_domain ) { my $domain = $svc_domain->domain; diff --git a/bin/bsdshell.export b/bin/bsdshell.export index 10c27671e..6e0d1037e 100755 --- a/bin/bsdshell.export +++ b/bin/bsdshell.export @@ -43,12 +43,7 @@ foreach my $export ( @bsd_exports ) { chmod 0644, "$prefix/passwd"; chmod 0600, "$prefix/master.passwd"; - #false laziness with freeside-sqlradius-reset and bind.export - my @svc_acct = - map { qsearchs('svc_acct', { 'svcnum' => $_->svcnum } ) } - map { qsearch('cust_svc', { 'svcpart' => $_->svcpart } ) } - grep { qsearch('cust_svc', { 'svcpart' => $_->svcpart } ) } - $export->export_svc; + my @svc_acct = $export->svc_x; next unless @svc_acct; diff --git a/bin/sysvshell.export b/bin/sysvshell.export index 859766103..c13912c3f 100755 --- a/bin/sysvshell.export +++ b/bin/sysvshell.export @@ -43,12 +43,7 @@ foreach my $export ( @sysv_exports ) { chmod 0644, "$prefix/passwd"; chmod 0600, "$prefix/shadow"; - #false laziness with freeside-sqlradius-reset and bind.export - my @svc_acct = - map { qsearchs('svc_acct', { 'svcnum' => $_->svcnum } ) } - map { qsearch('cust_svc', { 'svcpart' => $_->svcpart } ) } - grep { qsearch('cust_svc', { 'svcpart' => $_->svcpart } ) } - $export->export_svc; + my @svc_acct = $export->svc_x; next unless @svc_acct; |