From aee9c8510c6f0949b2300830f07e364d9a25d62c Mon Sep 17 00:00:00 2001 From: Thadeu Lima de Souza Cascardo Date: Fri, 24 Apr 2015 05:41:22 -0300 Subject: [PATCH] Get source package size Print both binary and source packages, prepending an S: for source packages. Add source files sizes to a source package size. --- debsort.pl | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/debsort.pl b/debsort.pl index 561144d..318e524 100644 --- a/debsort.pl +++ b/debsort.pl @@ -66,6 +66,7 @@ my @sources = (); my %binaries = (); my %csource = (); my %bdeps = (); +my %ssize = (); sub add_binaries { my ($package, $binaries) = @_; @@ -90,6 +91,7 @@ sub add_bdeps { $bdeps{$package} = $bd; } +my $files_start = 0; while () { if (/^Package: ([0-9a-z-+.]+)/) { @@ -102,6 +104,17 @@ while () { if (/^Build-Depends: (.*)/) { add_bdeps($package, $1); } + if ($files_start) { + if (/^ [a-f0-9]+ ([0-9]+)/) { + $ssize{$package} += $1; + } else { + $files_start = 0; + } + } + if (/^Files:/) { + $files_start = 1; + $ssize{$package} = 0; + } } close(SOURCES); @@ -139,10 +152,17 @@ while (@visit) { } my $tsize = 0; + for my $i (@pp) { $size{$i} = 0 if (!defined($size{$i})); print "$size{$i} $i\n"; $tsize += $size{$i}; } +for my $i (@vsource) { + $ssize{$i} = 0 if (!defined($ssize{$i})); + print "$ssize{$i} S:$i\n"; + $tsize += $ssize{$i}; +} + print "$tsize Total\n"; -- 2.20.1