3 # $Id: svc_domain.import,v 1.2 2001-04-22 01:56:15 ivan Exp $
6 use vars qw( %d_part_svc );
7 use Term::Query qw(query);
9 use FS::UID qw(adminsuidsetup datasrc);
10 #use FS::Record qw(qsearch qsearchs);
13 use FS::domain_record;
17 my $user = shift or die &usage;
20 my($spooldir)="/usr/local/etc/freeside/export.". datasrc;
23 map { $_->svcpart, $_ } qsearch('part_svc',{'svcdb'=>'svc_domain'});
26 ( join "\n", map "$_: ".$d_part_svc{$_}->svc, sort keys %d_part_svc ),
28 $^W=0; #Term::Query isn't -w-safe
30 query "Enter part number for domains: ", 'irk', [ keys %d_part_svc ];
34 Enter the location and name of your primary named.conf file, for example
35 "ns.isp.com:/var/named/named.conf"
37 my($named_conf)=&getvalue(":");
38 iscp("root\@$named_conf","$spooldir/named.conf.import");
40 my $named_machine = (split(/:/, $named_conf))[0];
46 $FS::svc_domain::whois_hack=1;
48 open(NAMED_CONF,"<$spooldir/named.conf.import")
49 or die "Can't open $spooldir/named.conf.import: $!";
51 while (<NAMED_CONF>) {
52 next unless /^\s*options/;
55 while (<NAMED_CONF>) {
56 last if /^\s*directory\s+\"([\/\w+]+)\";/;
58 $directory = $1 or die "can't locate directory in named.conf!";
59 whlie (<NAMED_CONF>) {
60 next unless /^\s*zone\s+\"([\w\.\-]+)\"\s+\{/;
62 while (<NAMED_CONF>) {
64 if ( /^\s*type\s+(master|slave)\s*\;/ ) {
67 if ( /^\s*file\s+\"([\w\.\-]+)\"\s*\;/ && $type eq 'master' ) {
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: $!";
83 last if /^\s*\}\s*\;/;
90 die "Usage:\n\n svc_domain.import user\n";