# 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*\#/;
}
sub parse_info_clientside () {
- my $yarrg= $ENV{'YPPSC_YARRG_DICT_UPDATE'};
- return unless $yarrg;
- my $master= fetch_with_rsync("info-$masterinfoversion");
- parse_info1($master,'s');
- my $local= '_local-info.txt';
- if (stat $local) {
- parse_info1($local,'s');
- } else {
- die "$local $!" unless $! == &ENOENT;
- }
+ my $master= fetch_with_rsync("info-v$masterinfoversion");
+ parse_info1($master,'s',1);
+ parse_info1('_local-info.txt','s',1);
}
sub fetch_with_rsync ($) {
}
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 () {
$aref->{"${prefix}name"}= 'ypp-sc-tools yarrg';
$aref->{"${prefix}fixes"}= 'lastpage checkpager';
- my $version= `git-describe --tags HEAD || echo 0unknown`; $? and die $?;
+ my $version= `
+ if type -p git-describe >/dev/null 2>&1; then
+ gd=git-describe
+ else
+ gd="git describe"
+ fi
+ \$gd --tags HEAD || echo 0unknown
+ `; $? and die $?;
chomp($version);
$aref->{"${prefix}version"}= $version;
return $aref;