]> git.decadent.org.uk Git - dak.git/blobdiff - dak/stats.py
[??] sync with ftp-master/dak master
[dak.git] / dak / stats.py
index bf22a7741aa70047bf81ef349f573ca66c1b4fc5..f7414eddc85ca4cfbd6b932af5ff74dda24283c3 100755 (executable)
@@ -1,8 +1,7 @@
 #!/usr/bin/env python
 
 # Various statistical pr0nography fun and games
-# Copyright (C) 2000, 2001, 2002, 2003  James Troup <james@nocrew.org>
-# $Id: saffron,v 1.3 2005-11-15 09:50:32 ajt Exp $
+# Copyright (C) 2000, 2001, 2002, 2003, 2006  James Troup <james@nocrew.org>
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -32,8 +31,8 @@
 ################################################################################
 
 import pg, sys
-import utils
 import apt_pkg
+import daklib.utils
 
 ################################################################################
 
@@ -43,12 +42,12 @@ projectB = None
 ################################################################################
 
 def usage(exit_code=0):
-    print """Usage: saffron STAT
+    print """Usage: dak stats MODE
 Print various stats.
 
   -h, --help                show this help and exit.
 
-The following STAT modes are available:
+The following MODEs are available:
 
   arch-space    - displays space used by each architecture
   pkg-nums      - displays the number of packages by suite/architecture
@@ -72,11 +71,11 @@ SELECT a.arch_string as Architecture, sum(f.size)
 
 def daily_install_stats():
     stats = {}
-    file = utils.open_file("2001-11")
+    file = daklib.utils.open_file("2001-11")
     for line in file.readlines():
-        split = line.strip().split('~')
+        split = line.strip().split('|')
         program = split[1]
-        if program != "katie":
+        if program != "katie" and program != "process-accepted":
             continue
         action = split[2]
         if action != "installing changes" and action != "installed":
@@ -183,7 +182,7 @@ SELECT suite, count(suite) FROM src_associations GROUP BY suite;""")
         for arch in Cnf.ValueList("Suite::%s::Architectures" % (suite)):
             suite_arches[suite_id][arch] = ""
         suite_id_list.append(suite_id)
-    output_list = map(lambda x: output_format(x), suite_list)
+    output_list = [ output_format(i) for i in suite_list ]
     longest_suite = longest(output_list)
     arch_list = arches.values()
     arch_list.sort()
@@ -214,23 +213,23 @@ SELECT suite, count(suite) FROM src_associations GROUP BY suite;""")
 def main ():
     global Cnf, projectB
 
-    Cnf = utils.get_conf()
-    Arguments = [('h',"help","Saffron::Options::Help")]
+    Cnf = daklib.utils.get_conf()
+    Arguments = [('h',"help","Stats::Options::Help")]
     for i in [ "help" ]:
-       if not Cnf.has_key("Saffron::Options::%s" % (i)):
-           Cnf["Saffron::Options::%s" % (i)] = ""
+       if not Cnf.has_key("Stats::Options::%s" % (i)):
+           Cnf["Stats::Options::%s" % (i)] = ""
 
     args = apt_pkg.ParseCommandLine(Cnf, Arguments, sys.argv)
 
-    Options = Cnf.SubTree("Saffron::Options")
+    Options = Cnf.SubTree("Stats::Options")
     if Options["Help"]:
        usage()
 
     if len(args) < 1:
-        utils.warn("saffron requires at least one argument")
+        daklib.utils.warn("dak stats requires a MODE argument")
         usage(1)
     elif len(args) > 1:
-        utils.warn("saffron accepts only one argument")
+        daklib.utils.warn("dak stats accepts only one MODE argument")
         usage(1)
     mode = args[0].lower()
 
@@ -243,7 +242,7 @@ def main ():
     elif mode == "daily-install":
         daily_install_stats()
     else:
-        utils.warn("unknown mode '%s'" % (mode))
+        daklib.utils.warn("unknown mode '%s'" % (mode))
         usage(1)
 
 ################################################################################