equal
deleted
inserted
replaced
1 #!/usr/bin/perl |
1 #!/usr/bin/perl |
2 |
2 |
3 use warnings; |
3 use warnings; |
4 use strict; |
4 use strict; |
5 use FindBin; |
5 use FindBin; |
|
6 use my::Config qw(get_config); |
|
7 |
|
8 my %config; |
6 |
9 |
7 if (@ARGV < 2) { |
10 if (@ARGV < 2) { |
8 print "usage: zone-mk kundennummer domain ... \n"; |
11 print "usage: zone-mk kundennummer domain ... \n"; |
9 exit 1; |
12 exit 1; |
10 } |
13 } |
15 "$FindBin::Bin/templates/named.config", |
18 "$FindBin::Bin/templates/named.config", |
16 "/etc/dnstools/templates/named.config" |
19 "/etc/dnstools/templates/named.config" |
17 ); |
20 ); |
18 my @templz = |
21 my @templz = |
19 ("$FindBin::Bin/templates/named.zone", "/etc/dnstools/templates/named.zone"); |
22 ("$FindBin::Bin/templates/named.zone", "/etc/dnstools/templates/named.zone"); |
20 my %config; |
|
21 |
|
22 for (grep { -f } @configs) { |
|
23 open(CONFIG, $_) or die "Can't open $_: $!\n"; |
|
24 } |
|
25 unless (seek(CONFIG, 0, 0)) { |
|
26 die "Can't open config (searched: @configs)\n"; |
|
27 } |
|
28 |
23 |
29 for (grep { -f } @templc) { |
24 for (grep { -f } @templc) { |
30 open(TEMPCONF, $_) or die "Can't open $_: $!\n"; |
25 open(TEMPCONF, $_) or die "Can't open $_: $!\n"; |
31 } |
26 } |
32 unless (seek(TEMPCONF, 0, 0)) { |
27 unless (seek(TEMPCONF, 0, 0)) { |
38 } |
33 } |
39 unless (seek(TEMPZONE, 0, 0)) { |
34 unless (seek(TEMPZONE, 0, 0)) { |
40 die "Can't open template (searched: @templz)\n"; |
35 die "Can't open template (searched: @templz)\n"; |
41 } |
36 } |
42 |
37 |
43 while (<CONFIG>) { |
38 |
44 chomp; |
39 %config = get_config(@configs); |
45 s/#.*//; |
|
46 s/\t//g; |
|
47 s/\s//g; |
|
48 next unless length; |
|
49 my ($cname, $ccont) = split(/\s*=\s*/, $_, 2); |
|
50 $config{$cname} = $ccont; |
|
51 } |
|
52 close(CONFIG); |
|
53 |
40 |
54 my $primary = $config{primary}; |
41 my $primary = $config{primary}; |
55 my $secondary = $config{secondary}; |
42 my $secondary = $config{secondary}; |
56 my $zone_conf_dir = $config{zone_conf_dir}; |
43 my $zone_conf_dir = $config{zone_conf_dir}; |
57 my $master_dir = $config{master_dir}; |
44 my $master_dir = $config{master_dir}; |