]> git.decadent.org.uk Git - dak.git/commitdiff
use arches_compare_sw, justify better, less space for notes and don't use commas...
authorJames Troup <james@nocrew.org>
Sun, 8 Dec 2002 17:25:47 +0000 (17:25 +0000)
committerJames Troup <james@nocrew.org>
Sun, 8 Dec 2002 17:25:47 +0000 (17:25 +0000)
helena

diff --git a/helena b/helena
index 1d2ebc58a5a7a2a8cea32b138400a101aefcf0ab..18cfbc39cf1934be71817a0aed4927b305a029db 100755 (executable)
--- a/helena
+++ b/helena
@@ -2,7 +2,7 @@
 
 # Produces a report on NEW and BYHAND packages
 # Copyright (C) 2001, 2002  James Troup <james@nocrew.org>
-# $Id: helena,v 1.2 2002-10-16 02:47:32 troup Exp $
+# $Id: helena,v 1.3 2002-12-08 17:25:47 troup Exp $
 
 # 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
@@ -136,23 +136,42 @@ def process_changes_files(changes_files, type):
             per_source[source]["note_state"] = 2; # all
     per_source_items = per_source.items();
     per_source_items.sort(sg_compare);
-    msg = "";
+
+    entries = [];
+    max_source_len = 0;
+    max_version_len = 0;
+    max_arch_len = 0;
     for i in per_source_items:
         last_modified = time.time()-i[1]["oldest"];
         source = i[1]["list"][0]["source"];
+        if len(source) > max_source_len:
+            max_source_len = len(source);
         arches = {};
         versions = {};
         for j in i[1]["list"]:
             for arch in j["architecture"].keys():
                 arches[arch] = "";
-            versions[j["version"]] = "";
-        arch_list = ", ".join(arches.keys());
-        version_list = ", ".join(versions.keys());
+            version = j["version"];
+            versions[version] = "";
+        arches_list = arches.keys();
+        arches_list.sort(utils.arch_compare_sw);
+        arch_list = " ".join(arches_list);
+        version_list = " ".join(versions.keys());
+        if len(version_list) > max_version_len:
+            max_version_len = len(version_list);
+        if len(arch_list) > max_arch_len:
+            max_arch_len = len(arch_list);
         if i[1]["note_state"]:
-            note = " | [note]";
+            note = " | [N]";
         else:
             note = "";
-        msg += "%10s | %10s | %10s%s | %s old\n" % (source, version_list, arch_list, note, time_pp(last_modified));
+        entries.append([source, version_list, arch_list, note, time_pp(last_modified)]);
+
+    format="%%-%ds | %%-%ds | %%-%ds%%s | %%s old\n" % (max_source_len, max_version_len, max_arch_len)
+    msg = "";
+    for entry in entries:
+        (source, version_list, arch_list, note, last_modified) = entry;
+        msg += format % (source, version_list, arch_list, note, last_modified);
 
     if msg:
         total_count = len(changes_files);
@@ -173,10 +192,13 @@ def main():
     apt_pkg.ParseCommandLine(Cnf,[],sys.argv);
     Katie = katie.Katie(Cnf);
 
-    changes_files = glob.glob("%s/*.changes" % (Cnf["Dir::Queue::Byhand"]));
-    process_changes_files(changes_files, "byhand");
-    changes_files = glob.glob("%s/*.changes" % (Cnf["Dir::Queue::New"]));
-    process_changes_files(changes_files, "new");
+    directories = Cnf.ValueList("Helena::Directories");
+    if not directories:
+        directories = [ "byhand", "new"]
+
+    for directory in directories:
+        changes_files = glob.glob("%s/*.changes" % (Cnf["Dir::Queue::%s" % (directory)]));
+        process_changes_files(changes_files, directory);
 
 ################################################################################