chiark / gitweb /
master-info sanitiser. master-info is now renamed source-info
[ypp-sc-tools.db-test.git] / yarrg / update-master-info
index a52b212366ab635becd16399a26baf5ae3cde1b7..3aa9ac2d802fd8508d0e8f5ab43f0730d383d855 100755 (executable)
@@ -17,6 +17,27 @@ foreach my $oceanname (sort keys %oceans) {
 }
 
 print STDERR "installing new master-info...\n";
-my $df= "$rsyncdir/master-info.txt";
-system('cp','--','master-info.txt',"$df.tmp"); die $? if $?;
-system('mv','--',"$df.tmp",$df); die $? if $?
+
+my $sfn= 'source-info.txt';
+my $dfn= "$rsyncdir/master-info.txt";
+
+my $sf= new IO::File $sfn or die "$sfn $!";
+my $df= new IO::File "$dfn.tmp", 'w' or die "$dfn.tmp $!";
+
+my $h;
+while (<$sf>) {
+    chomp; s/\s+$//;
+    next if m/^\s*\#/ || !m/\S/;
+    if (m/^\S.*/) {
+       $h= $&;
+    }
+    die "$_ ?" unless defined $h;
+    if ($h =~ m/^commods|^\%[a-z]\b/) {
+       s/\t.*//;
+    }
+    print $df $_, "\n" or die $!;
+}
+
+$sf->error and die $!;
+close $df or die $!;
+rename "$dfn.tmp", "$dfn" or die $!;