chiark / gitweb /
Support Hunter
[ypp-sc-tools.db-live.git] / yarrg / update-master-info
index 1dd432ff895584365fbc7c2aebfbe05193466562..3f570a68f26b3a75e297d107a3e7e1de4953550d 100755 (executable)
@@ -9,7 +9,7 @@ sub full ($) {
     my ($ocean) = @_;
     quick($ocean);
     print "## updating topology of $ocean\n";
-    system('./yppedia-chart-parser',$ocean); die $? if $?;
+    system('./yppedia-chart-parser',$ocean); die "$ocean $?" if $?;
 }
 
 sub quick ($) {
@@ -20,39 +20,48 @@ sub quick ($) {
 
 my $rsyncdir;
 
-sub update_master_info () {
-    my $sfn= 'source-info.txt';
+sub process_some_info ($$$) {
+    my ($v,$df,$sfn) = @_;
+    my $sf= new IO::File $sfn or die "$sfn $!";
+
+    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.*//;
+       }
+       if ($v<2) {
+           next if $h =~ m/^nocommods/;
+       }
+       next if $sfn =~ m/source-info/ && $h =~ m/^ocean/;
 
+       print $df $_, "\n" or die $!;
+    }
+
+    $sf->error and die $!;
+}
+
+sub update_master_info () {
     foreach my $v (1..$masterinfoversion) {
        my $dfnl= sprintf "master-info%s.txt", ($v>1 ? "-v$v" : '');
        print STDERR "installing new $dfnl...\n";
     
        my $dfn= "$rsyncdir/$dfnl";
-       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.*//;
-           }
-           if ($v<2) {
-               next if $h =~ m/^nocommods/;
-           }
-           print $df $_, "\n" or die $!;
+       process_some_info($v,$df, 'source-info.txt');
+       foreach my $ocean (sort keys %oceans) {
+           process_some_info($v,$df, '_ocean-'.(lc $ocean).'.txt');
        }
 
-       $sf->error and die $!;
        close $df or die $!;
        rename "$dfn.tmp", "$dfn" or die $!;
     }
-
 }
 
 
@@ -75,6 +84,7 @@ while (@ARGV && $ARGV[0] =~ m/^-/) {
        else { die "$_ ?"; }
     }
 }
+die if @ARGV;
 
 die if @specoceans && $alloceans;