[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[dak/master] handle compressed files transparently



---
 scripts/debian/update-ftpstats |   23 ++++++++++++++++-------
 1 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/scripts/debian/update-ftpstats b/scripts/debian/update-ftpstats
index 1f9727a..a7fda09 100755
--- a/scripts/debian/update-ftpstats
+++ b/scripts/debian/update-ftpstats
@@ -1,20 +1,29 @@
 #!/usr/bin/perl
 
+use strict;
+use warnings;
+
+use IO::Uncompress::AnyUncompress ":all";
+
 my %data;
 my %data2;
 my @archs = ("source", "all", "amd64", "i386", "alpha", "arm", "armel", "armhf", "hppa",
              "hurd-i386", "ia64", "kfreebsd-amd64", "kfreebsd-i386", "mips", "mipsel", "powerpc", "s390",
              "s390x", "sparc");
 
-while (<>) {
-  if (/^(\d{8})\d{6}\|(?:k(?:atie|elly)|process-(?:accepted|upload))(?:\|dak)?\|installed\|[^|]+\|[^|]+\|(\d+)\|([-\w]+)$/) {
-    if (not defined $data{$1}) {
-      foreach $a (@archs) {
-        $data{$1}{$a} = 0;
+for my $file (@ARGV) {
+  my $FH = new IO::Uncompress::AnyUncompress $file, Transparent => 1
+    or die "Cannot open $file: $AnyUncompressError\n";
+  while (<$FH>) {
+    if (/^(\d{8})\d{6}\|(?:k(?:atie|elly)|process-(?:accepted|upload))(?:\|dak)?\|installed\|[^|]+\|[^|]+\|(\d+)\|([-\w]+)$/) {
+      if (not defined $data{$1}) {
+        foreach $a (@archs) {
+          $data{$1}{$a} = 0;
+        }
       }
+      $data{$1}{$3} += $2;
+      $data2{$1}{$3}++;
     }
-    $data{$1}{$3} += $2;
-    $data2{$1}{$3}++;
   }
 }
 
-- 
1.7.2.5



Reply to: