Rewrite to handle more CDs, and to list the udebs too.

This commit is contained in:
Petter Reinholdtsen 2006-08-06 10:54:44 +00:00
parent 139811b42b
commit 3a1e680fb8
1 changed files with 34 additions and 11 deletions

View File

@ -1,4 +1,4 @@
#!/usr/bin/perl -w #!/usr/bin/perl
# #
# Author: Petter Reinholdtsen <pere@hungry.com> # Author: Petter Reinholdtsen <pere@hungry.com>
# Date: 2001-11-20 # Date: 2001-11-20
@ -6,25 +6,48 @@
# Parse logfile from Debian debian-cd build, and report how much each package # Parse logfile from Debian debian-cd build, and report how much each package
# added to the CD size. # added to the CD size.
$logfile = ($ARGV[0] || use warnings;
"$ENV{TDIR}/$ENV{CODENAME}-$ENV{ARCH}/log.list2cds"); use strict;
my $logfile = ($ARGV[0] ||
"/skolelinux/developer/local0/ftp/tmp/woody-i386/log.list2cds");
my $cdlimit = ($ARGV[1] || 1) + 1;
open(LOG, $logfile) || die "Unable to open $logfile"; open(LOG, $logfile) || die "Unable to open $logfile";
my $curcd = 1;
my $pkg; my $pkg;
my @order;
my %cdsize;
my %size;
my $curcdsize;
my $cursize;
while (<LOG>) { while (<LOG>) {
chomp; chomp;
$pkg = $1 if (/^\+ Trying to add (.+)\.\.\./); # $pkg = $1 if (/^\+ Trying to add (.+)\.\.\./);
if (/ \$cd_size = (\d+), \$size = (\d+)/) { if (/ \$cd_size = (\d+), \$size = (\d+)/) {
$cdsize{$pkg} = $1; $curcdsize = $1;
$size{$pkg} = $2; $cursize = $2;
}
if (/^ Adding (\S+) .+/) {
$pkg = $1;
$cdsize{$pkg} = $curcdsize;
$size{$pkg} = $cursize;
push @order, $pkg;
}
if (/Limit for CD (.+) is/) {
last if $cdlimit == $1;
my $txt = "<=============== start of CD $1";
$size{$txt} = 0;
$cdsize{$txt} = 0;
push @order, $txt;
} }
last if (/Limit for CD 2 is/);
# Add delimiter # Add delimiter
if (/Standard system already takes (.\d+)/) { if (/Standard system already takes (.\d+)/) {
my $pkg = "<=============== end of standard pkgs"; my $txt = "<=============== end of standard pkgs";
$size{$pkg} = 0; $size{$txt} = 0;
$cdsize{$pkg} = $1; $cdsize{$txt} = $1;
push @order, $txt;
} }
} }
close(LOG); close(LOG);
@ -32,6 +55,6 @@ close(LOG);
print " +size cdsize pkgname\n"; print " +size cdsize pkgname\n";
print "-----------------------\n"; print "-----------------------\n";
for $pkg (sort { $cdsize{$a} <=> $cdsize{$b} } keys %size) { for $pkg (@order) {
printf "%7d %7d %s\n", $size{$pkg} / 1024, $cdsize{$pkg} / 1024, $pkg; printf "%7d %7d %s\n", $size{$pkg} / 1024, $cdsize{$pkg} / 1024, $pkg;
} }