# 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
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);
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);
################################################################################