chiark / gitweb /
Gate parsing master-info-v* on YPPSC_YARRG_YARRG rather than YPPSC_YARRG_DICT_UPDATE...
[ypp-sc-tools.main.git] / yarrg / Commods.pm
index 4d988db4ae7e28b854eac40330b9ecd4d84ebfbe..b58471ce43a9370a74aa8a6ec8eb11f51822ff62 100644 (file)
@@ -71,9 +71,13 @@ my (@rawcm, @nocm); # eg $rawcm[0]='fine rum'; $rawcm[1]='fine %c cloth'
 #  when extending the format of source-info in a non-backward
 #  compatible way, be sure to update update-master-info too.
 
-sub parse_info1 ($$) {
-    my ($mmfn,$src)= @_;
-    my $mm= new IO::File $mmfn, 'r' or die "$mmfn $!";
+sub parse_info1 ($$$) {
+    my ($mmfn,$src,$enoentok)= @_;
+    my $mm= new IO::File $mmfn, 'r';
+    if (!$mm) {
+       return if $enoentok && $!==&ENOENT;
+       die "$mmfn $!";
+    }
     my @ctx= ();
     while (<$mm>) {
        next if m/^\s*\#/;
@@ -176,16 +180,9 @@ sub parse_info1 ($$) {
 }
 
 sub parse_info_clientside () {
-    my $yarrg= $ENV{'YPPSC_YARRG_DICT_UPDATE'};
-    return unless $yarrg;
     my $master= fetch_with_rsync("info-v$masterinfoversion");
-    parse_info1($master,'s');
-    my $local= '_local-info.txt';
-    if (stat $local) {
-       parse_info1($local,'s');
-    } else {
-       die "$local $!" unless $! == &ENOENT;
-    }
+    parse_info1($master,'s',1);
+    parse_info1('_local-info.txt','s',1);
 }
 
 sub fetch_with_rsync ($) {
@@ -220,12 +217,12 @@ sub parse_info_maproutes ($$$) {
 }
 
 sub parse_info_serverside () {
-    parse_info1('source-info.txt','s');
+    parse_info1('source-info.txt','s',0);
 }
 sub parse_info_serverside_ocean ($) {
     my ($oceanname) = @_;
     die "unknown ocean $oceanname ?" unless exists $oceans{$oceanname};
-    parse_info1("_ocean-".(lc $oceanname).".txt",'s');
+    parse_info1("_ocean-".(lc $oceanname).".txt", 's',0);
 }
 
 sub parse_pctb_commodmap () {