chiark
/
gitweb
/
~yarrgweb
/
ypp-sc-tools.db-test.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'stable-3.x'
[ypp-sc-tools.db-test.git]
/
yarrg
/
Commods.pm
diff --git
a/yarrg/Commods.pm
b/yarrg/Commods.pm
index 27e06e867e39bf56d5cfd9ed65f49a37b881b726..c10965b2dfb75c0f63cf531e7d355ccbdaafaa84 100644
(file)
--- a/
yarrg/Commods.pm
+++ b/
yarrg/Commods.pm
@@
-42,12
+42,14
@@
BEGIN {
&pipethrough_run_along &pipethrough_run_finish
&pipethrough_run_gzip
&cgipostform &yarrgpostform &cgi_get_caller
&pipethrough_run_along &pipethrough_run_finish
&pipethrough_run_gzip
&cgipostform &yarrgpostform &cgi_get_caller
- &set_ctype_utf8);
+ &set_ctype_utf8
$masterinfoversion
);
%EXPORT_TAGS = ( );
@EXPORT_OK = qw();
}
%EXPORT_TAGS = ( );
@EXPORT_OK = qw();
}
+our $masterinfoversion= 2; # version we understand
+
our %oceans; # eg $oceans{'Midnight'}{'Ruby'}{'Eta Island'}= $sources;
our %clients; # eg $clients{'ypp-sc-tools'}= [ qw(last-page) ];
our %routes; # eg $routes{'Midnight'}{'Orca'}{'Tinga'}= $sources NB abbrevs!
our %oceans; # eg $oceans{'Midnight'}{'Ruby'}{'Eta Island'}= $sources;
our %clients; # eg $clients{'ypp-sc-tools'}= [ qw(last-page) ];
our %routes; # eg $routes{'Midnight'}{'Orca'}{'Tinga'}= $sources NB abbrevs!
@@
-63,7
+65,11
@@
our %commods;
our (%pctb_commodmap,@pctb_commodmap);
my %colours; # eg $colours{'c'}{'black'}= $sources
our (%pctb_commodmap,@pctb_commodmap);
my %colours; # eg $colours{'c'}{'black'}= $sources
-my @rawcm; # eg $rawcm[0]='fine rum'; $rawcm[1]='fine %c cloth'
+my (@rawcm, @nocm); # eg $rawcm[0]='fine rum'; $rawcm[1]='fine %c cloth'
+
+# IMPORTANT
+# 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)= @_;
sub parse_info1 ($$) {
my ($mmfn,$src)= @_;
@@
-78,6
+84,8
@@
sub parse_info1 ($$) {
@ctx= (sub { $colours{$colourkind}{lc $_} .= $src; });
} elsif (m/^commods$/) {
@ctx= (sub { push @rawcm, lc $_; });
@ctx= (sub { $colours{$colourkind}{lc $_} .= $src; });
} elsif (m/^commods$/) {
@ctx= (sub { push @rawcm, lc $_; });
+ } elsif (m/^nocommods$/) {
+ @ctx= (sub { push @nocm, lc $_; });
} elsif (m/^ocean (\w+)$/) {
my $ocean= $1;
@ctx= (sub {
} elsif (m/^ocean (\w+)$/) {
my $ocean= $1;
@ctx= (sub {
@@
-122,13
+130,14
@@
sub parse_info1 ($$) {
#print "ca($s)\n";
if ($s !~ m/\%(\w+)/) {
my ($name, $props) = $s =~
#print "ca($s)\n";
if ($s !~ m/\%(\w+)/) {
my ($name, $props) = $s =~
- /^(\S[^\t]*\S)
\t+(\S[^\t]*\S)
$/
+ /^(\S[^\t]*\S)
(?:\t+(\S[^\t]*\S))?
$/
or die "bad commodspec $s";
or die "bad commodspec $s";
+ return if grep { $name eq $_ } @nocm;
my $ucname= ucfirst $name;
$commods{$ucname}{Srcs} .= $ss;
my $c= $commods{$ucname};
$c->{Volume}= 1000;
my $ucname= ucfirst $name;
$commods{$ucname}{Srcs} .= $ss;
my $c= $commods{$ucname};
$c->{Volume}= 1000;
- foreach my $prop (
split /\s+/, $props
) {
+ foreach my $prop (
defined $props ? split /\s+/, $props : ()
) {
if ($prop =~ m/^([1-9]\d*)(k?)g$/) {
$c->{Mass}= $1 * ($2 ? 1000 : 1);
} elsif ($prop =~m/^([1-9]\d*)l$/) {
if ($prop =~ m/^([1-9]\d*)(k?)g$/) {
$c->{Mass}= $1 * ($2 ? 1000 : 1);
} elsif ($prop =~m/^([1-9]\d*)l$/) {
@@
-137,7
+146,6
@@
sub parse_info1 ($$) {
die "unknown property $prop for $ucname";
}
}
die "unknown property $prop for $ucname";
}
}
- die "no mass for $ucname" unless defined $c->{Mass};
return;
}
die "unknown $&" unless defined $colours{$1};
return;
}
die "unknown $&" unless defined $colours{$1};
@@
-168,7
+176,7
@@
sub parse_info1 ($$) {
sub parse_info_clientside () {
my $yarrg= $ENV{'YPPSC_YARRG_DICT_UPDATE'};
return unless $yarrg;
sub parse_info_clientside () {
my $yarrg= $ENV{'YPPSC_YARRG_DICT_UPDATE'};
return unless $yarrg;
- my $master= fetch_with_rsync(
'info'
);
+ my $master= fetch_with_rsync(
"info-$masterinfoversion"
);
parse_info1($master,'s');
my $local= '_local-info.txt';
if (stat $local) {
parse_info1($master,'s');
my $local= '_local-info.txt';
if (stat $local) {
@@
-210,7
+218,7
@@
sub parse_info_maproutes ($$$) {
}
sub parse_info_serverside () {
}
sub parse_info_serverside () {
- parse_info1('
master
-info.txt','s');
+ parse_info1('
source
-info.txt','s');
}
sub parse_info_serverside_ocean ($) {
my ($oceanname) = @_;
}
sub parse_info_serverside_ocean ($) {
my ($oceanname) = @_;
@@
-239,7
+247,7
@@
sub parse_pctb_commodmap () {
sub get_our_version ($$) {
my ($aref,$prefix) = @_;
$aref->{"${prefix}name"}= 'ypp-sc-tools yarrg';
sub get_our_version ($$) {
my ($aref,$prefix) = @_;
$aref->{"${prefix}name"}= 'ypp-sc-tools yarrg';
- $aref->{"${prefix}fixes"}= 'lastpage';
+ $aref->{"${prefix}fixes"}= 'lastpage
checkpager
';
my $version= `git-describe --tags HEAD || echo 0unknown`; $? and die $?;
chomp($version);
my $version= `git-describe --tags HEAD || echo 0unknown`; $? and die $?;
chomp($version);