#!/usr/bin/perl if(!open(F,"status.txt")) { print STDERR "Error opening status.txt: $!\n"; exit 1; } sub Perc { my $s=shift; my $ver=shift; $s=substr($s,1); if($s>0) { if(!defined($np{$ver})) { return(" ($s packs)"); } return(" (".sprintf("%d",$s*100/$np{$ver})."%)"); } return(""); } sub MapStatus { my $s=shift; my $ver=shift; if($s eq "C") { return("Complete\tcomplete"); } if($s eq "B") { return("Base complete\tbasiccomp"); } if($s eq "U") { return("Base complete\tupdating"); } if($s=~m/^S/) { return("Building from scratch".Perc($s,$ver)."\tmissing"); } if($s eq "-") { return("None\tnone"); } return("Unknown\tunknown"); } sub MapPatch { my $s=shift; my $ver=shift; if($s=~m/^S/) { return("Building ".Perc($s,$ver)."\tmissing"); } my $date="20".substr($s,0,2)."-".substr($s,2,2)."-".substr($s,4,2); if($s=~m/u/i) { return("Updating\tmissingmozu\t$date"); } elsif($s eq "-") { return("None\tnone\t"); } return("Updated\tmissingmoz\t$date"); } sub MapCurr { my $s=shift; my $ver=shift; if($s=~m/^S/) { return("Building from scratch".Perc($s,$ver)."\tmissing"); } my $date="20".substr($s,0,2)."-".substr($s,2,2)."-".substr($s,4,2); $s=~s/\s+$//; if(length($s)>6) { return("Updating\tupdating\t$date\t".substr($s,7)); } elsif($s eq "-") { return("None\tnone\t"); } return("Updated\tcomplete\t$date"); } $head=; while() { chop; if(!m/^#/) { ($arch,$s14,$p14,$s15,$p15,$cur)=split("\t"); $arch=~s/\s+$//; if($arch eq "numpacks") { $np{s142}=$s14; $np{p142}=$p14; $np{s15}=$s15; $np{p15}=$p15; $np{cur}=$cur; } else { ($map{"${arch}:142s"},$map{"${arch}:142sc"})=split("\t",MapStatus($s14,"s142")); ($map{"${arch}:142p"},$map{"${arch}:142pc"},$map{"${arch}:142pd"})=split("\t",MapPatch($p14,"p142")); ($map{"${arch}:15s"},$map{"${arch}:15sc"})=split("\t",MapStatus($s15,"s15")); ($map{"${arch}:15p"},$map{"${arch}:15pc"},$map{"${arch}:15pd"})=split("\t",MapPatch($p15,"p15")); ($map{"${arch}:CURs"},$map{"${arch}:CURsc"},$map{"${arch}:CURsd"},$map{"${arch}:CURsp"})=split("\t",MapCurr($cur,"cur")); if(length($map{"${arch}:CURsp"})) { $map{"${arch}:CURsp"}=" (".$map{"${arch}:CURsp"}." in progress)"; } #if(length($map{"${arch}:CURsp"})) { $map{"${arch}:CURsp"}=""; } } } } close(F); if(!open(F,"template.html")) { print STDERR "Error opening template.html $!\n"; exit 1; } while() { foreach $k (keys %map) { s/\$\{$k\}/$map{$k}/; } $i=0; if(m/\[\d+\]/) { if(m/footnote/) { s|(\[)(\d+)(\])|$1$2$3|g; } else { s|(\[)(\d+)(\])|$1$2$3|g; } } print; } close(F);