home *** CD-ROM | disk | FTP | other *** search
/ PC-Online 1996 May / PCOnline_05_1996.bin / linux / source / n / bind / bind-4.001 / bind-4~ / bind-4.9.3-BETA9 / contrib / decwrl / mkservers.pl < prev    next >
Perl Script  |  1993-04-29  |  1KB  |  60 lines

  1. #! /usr/bin/perl
  2.  
  3. # Originally written by Paul Vixie of DEC WRL on June 28 1991
  4.  
  5. # $Header: mkservers,v 1.3 91/09/06 18:07:53 root Exp $
  6.  
  7. if ($#ARGV != 0) {
  8.     print stderr "usage:  $0 serverfile\n";
  9.     exit(1);
  10. }
  11.  
  12. $basename = $ARGV[0];
  13.  
  14. %arch = (    'vax', 1,
  15.         'mips', 1
  16.     );
  17.  
  18. open(servers, "<$basename") || die "$basename: $!";
  19. open(serversdb, ">$basename.db.NEW") || die "$basename.db.NEW: $!";
  20. foreach (keys(%arch)) {
  21.     $f = "$basename.$_.NEW";
  22.     open($f, ">$f") || die "$f: $!";
  23. }
  24.  
  25. while (<servers>) {
  26.     chop;
  27.     next if /^#/ || /^$/;
  28.     ($host, $rdist) = split;
  29.     if ($host !~ /\./) {
  30.         print  stderr "unqualified servername in `$_'\n";
  31.         next;
  32.     }
  33.     print serversdb "@ IN NS $host.\n";
  34.     next if ($rdist eq '-');
  35.     if (!$arch{$rdist}) {
  36.         print stderr "second token isn't a valid architecture in `$_'\n";
  37.         next;
  38.     }
  39.     $f = "$basename.$rdist.NEW";
  40.     $oldfh = select($f);
  41.     print "$host\n";
  42.     select($oldfh);
  43. }
  44.  
  45. close(servers);
  46.  
  47. close(serversdb) || die "close $basenaame.db.NEW: $!";
  48. rename("$basename.db", "$basename.db.BAK");
  49. rename("$basename.db.NEW", "$basename.db");
  50.  
  51. foreach (keys(%arch)) {
  52.     $f = "$basename.$_";
  53.     $new = "$f.NEW";
  54.     close($new) || die "$new: $!";
  55.     rename($f, "$f.BAK");
  56.     rename("$f.NEW", $f);
  57. }
  58.  
  59. exit 0;
  60.