]> git.donarmstrong.com Git - bin.git/blobdiff - update_dns_serial
add reset usb bus command
[bin.git] / update_dns_serial
index 72edce29eeb6735d5369e8231e8dae5d3aeaab5f..9a23f89496d95a439809c0d50299f5230d2de50f 100755 (executable)
@@ -7,16 +7,21 @@ use IO::File;
 use POSIX qw(strftime);
 
 for my $file (@ARGV) {
-    my $fh = IO::File->new($file,'r');
-    my $fh_new = IO::File->new($file.".new",'w');
+    my $fh = IO::File->new($file,'r') or die "Unable to open $file for reading: $!";
+    my $fh_new = IO::File->new($file.".new",'w') or die "Unable to open ${file}.new for writing: $!";
     local $/;
     my $fh_contents = <$fh>;
     # rip out old serial
     my ($old_serial) = $fh_contents =~ /IN\s+SOA\s+\S+\s+\S+\s*(?:\s*\;.+\n)*\((?:\s*\;.+\n)*\s*(\d+)/;
-    my ($ymd,$iter) = $old_serial =~ /(\d{4}\d{2}\d{2})(\d{2})/;
-    my $new_serial = strftime("%Y%m%d",gmtime)."01"
-    if ($ymd == strftime("%Y%m%d",gmtime)) {
-       $new_serial = $ymd.($iter+1);
+    if (not defined $old_serial) {
+       print STDERR "problem dealing with $file\n";
+       unlink("${file}.new") or die "Unable to unlink ${file}.new: $!";
+       next;
+    }
+    my ($ymd,$iter) = $old_serial =~ /(\d{4}\d{2}\d{2})(\d{1,2})/;
+    my $new_serial = strftime("%Y%m%d",gmtime())."01";
+    if ($ymd eq strftime("%Y%m%d",gmtime())) {
+       $new_serial = $ymd.sprintf('%02d',$iter+1);
     }
     $fh_contents =~ s/(IN\s+SOA\s+\S+\s+\S+\s*(?:\s*\;.+\n)*\((?:\s*\;.+\n)*\s*)(\d+)/${1}${new_serial}/;
     print {$fh_new} $fh_contents;