diff -r d1addc2ec712 -r d3269961e944 update-index --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/update-index Fri Aug 13 17:00:37 2010 +0200 @@ -0,0 +1,68 @@ +#! /usr/bin/perl + +use strict; +use warnings; +use File::Basename; +use FindBin; + +# liest die Konfiguration +my @configs = ( "$FindBin::Bin/dnstools.conf", "/etc/dnstools.conf" ); +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"; +} + +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 $master_dir = $config{master_dir}; +my $indexzone = $config{indexzone}; +my @iz_content_old = (); +my @iz_content_new = (); +my $iz_line; +my $zone; + +unless ( -d $master_dir and -r $master_dir ) { + die "$master_dir: $!\n"; +} + +open (INDEXZONE, "$master_dir/$indexzone/$indexzone") + or die "$master_dir/$indexzone/$indexzone: $!\n"; +@iz_content_old = , +close (INDEXZONE); + +for (@iz_content_old) { + unless (m#ZONE::#) { + push @iz_content_new, $_; + } +} + + +for my $dir ( glob "$master_dir/*" ) { + $zone = basename($dir); + + $iz_line = "\t\tIN TXT\t\t\"ZONE::$zone\"\n"; + + push @iz_content_new, $iz_line; +} + + +open (INDEXZONE, ">$master_dir/$indexzone/$indexzone") + or die "$master_dir/$indexzone/$indexzone: $!\n"; +print INDEXZONE @iz_content_new; +close (INDEXZONE); + +print "index domain $indexzone updated \n";