templates!!!
[freeside.git] / bin / svc_domain.import
1 #!/usr/bin/perl -w
2 #
3 # $Id: svc_domain.import,v 1.2 2001-04-22 01:56:15 ivan Exp $
4
5 use strict;
6 use vars qw( %d_part_svc );
7 use Term::Query qw(query);
8 use Net::SCP qw(iscp);
9 use FS::UID qw(adminsuidsetup datasrc);
10 #use FS::Record qw(qsearch qsearchs);
11 #use FS::svc_acct_sm;
12 use FS::svc_domain;
13 use FS::domain_record;
14 #use FS::svc_acct;
15 #use FS::part_svc;
16
17 my $user = shift or die &usage;
18 adminsuidsetup $user;
19
20 my($spooldir)="/usr/local/etc/freeside/export.". datasrc;
21
22 %d_part_svc =
23   map { $_->svcpart, $_ } qsearch('part_svc',{'svcdb'=>'svc_domain'});
24
25 print "\n\n",
26       ( join "\n", map "$_: ".$d_part_svc{$_}->svc, sort keys %d_part_svc ),
27       "\n\n";
28 $^W=0; #Term::Query isn't -w-safe
29 my $domain_svcpart =
30   query "Enter part number for domains: ", 'irk', [ keys %d_part_svc ];
31 $^W=1;
32
33   print "\n\n", <<END;
34 Enter the location and name of your primary named.conf file, for example
35 "ns.isp.com:/var/named/named.conf"
36 END
37   my($named_conf)=&getvalue(":");
38   iscp("root\@$named_conf","$spooldir/named.conf.import");
39
40 my $named_machine = (split(/:/, $named_conf))[0];
41
42 print "\n\n";
43
44 ##
45
46 $FS::svc_domain::whois_hack=1;
47
48 open(NAMED_CONF,"<$spooldir/named.conf.import")
49   or die "Can't open $spooldir/named.conf.import: $!";
50
51 while (<NAMED_CONF>) {
52   next unless /^\s*options/;
53 }
54 my $directory;
55 while (<NAMED_CONF>) {
56   last if /^\s*directory\s+\"([\/\w+]+)\";/;
57
58 $directory = $1 or die "can't locate directory in named.conf!";
59 whlie (<NAMED_CONF>) {
60   next unless /^\s*zone\s+\"([\w\.\-]+)\"\s+\{/;
61   my $zone = $1;
62   while (<NAMED_CONF>) {
63     my $type;
64     if ( /^\s*type\s+(master|slave)\s*\;/ ) {
65       $type = $1;
66     }
67     if ( /^\s*file\s+\"([\w\.\-]+)\"\s*\;/ && $type eq 'master' ) {
68
69       #
70       # (add svc_domain)
71       my $file = $1;
72       iscp("root\@$named_machine:$directory/$file","$spooldir/$file.import");
73       open(ZONE,"<$spooldir/$file.import")
74         or die "Can't open $spooldir/$file.import: $!";
75       while (<ZONE>) {
76         # (add domain_record)
77       }
78
79       #
80
81     }
82     
83     last if /^\s*\}\s*\;/;
84   }
85 }
86
87 ##
88
89 sub usage {
90   die "Usage:\n\n  svc_domain.import user\n";
91 }
92