diff -r 53c95f2ff0ac -r 0e1e5027e9c0 zone-mk.pl --- a/zone-mk.pl Tue Dec 21 17:00:11 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,133 +0,0 @@ -#!/usr/bin/perl - -use warnings; -use strict; -use FindBin; - -if (@ARGV < 2) { - print "usage: zone-mk kundennummer domain ... \n"; - exit 1; -} - -# oeffnet Konfigurations- und Templatefiles - relativ oder absolut -my @configs = ("$FindBin::Bin/dnstools.conf", "/etc/dnstools.conf"); -my @templc = ( - "$FindBin::Bin/templates/named.config", - "/etc/dnstools/templates/named.config" -); -my @templz = - ("$FindBin::Bin/templates/named.zone", "/etc/dnstools/templates/named.zone"); -my %config; - -for (grep { -f } @configs) { - open(CONFIG, $_) or die "Can't open $_: $!\n"; -} -unless (seek(CONFIG, 0, 0)) { - die "Can't open config (searched: @configs)\n"; -} - -for (grep { -f } @templc) { - open(TEMPCONF, $_) or die "Can't open $_: $!\n"; -} -unless (seek(TEMPCONF, 0, 0)) { - die "Can't open template (searched: @templc)\n"; -} - -for (grep { -f } @templz) { - open(TEMPZONE, $_) or die "Can't open $_: $!\n"; -} -unless (seek(TEMPZONE, 0, 0)) { - die "Can't open template (searched: @templz)\n"; -} - -while () { - chomp; - s/#.*//; - s/\t//g; - s/\s//g; - next unless length; - my ($cname, $ccont) = split(/\s*=\s*/, $_, 2); - $config{$cname} = $ccont; -} -close(CONFIG); - -my $primary = $config{primary}; -my $secondary = $config{secondary}; -my $zone_conf_dir = $config{zone_conf_dir}; -my $master_dir = $config{master_dir}; -my $customer = shift @ARGV; -chomp(my $primary_ip = `dig +short $primary`); -chomp(my $secondary_ip = `dig +short $secondary`); -chomp(my $this_host = `hostname -f`); -chomp(my $this_ip = `hostname -i`); -chomp(my $this_domain = `hostname -d`); -chomp(my $time = `date +%Y%m%d00`); -chomp(my $start = `date -I`); -my $hostmaster = "hostmaster.$this_domain"; - -unless (-d $master_dir and -r $master_dir) { - die "$master_dir: $!\n"; -} - -unless (-d $zone_conf_dir and -r $zone_conf_dir) { - die "$master_dir: $!\n"; -} - -# legt fuer jede domain in @ARGV ein verzeichnis in $master_dir an. -# schreibt aus den angegebenen templates die dateien $zonefile und $config -# in die entsprechenden verzeichnisse. -for (@ARGV) { - - chomp(my $domain = `idn --quiet "$_"`); - my $zonefile = "$master_dir/$domain/$domain"; - my $config = "$zone_conf_dir/$domain"; - my $utf8domain = "$_"; - - unless (-d "$master_dir/$domain") { - `mkdir $master_dir/$domain`; - } - - if (-f $zonefile) { - $zonefile =~ s#/.*/##; - print "$zonefile exists. Skipping $domain\n"; - next; - } - if (-f $config) { - $config =~ s#/.*/##; - print "$config exists. Skipping $domain\n"; - next; - } - - print "$domain ($_) for $customer \n"; - - my @tempzone = ; - for (@tempzone) { - s##$start#; - s##$domain#; - s#