X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=helena;h=18cfbc39cf1934be71817a0aed4927b305a029db;hb=fa7b68ee3d2c9d467669021fd62e09a407e1244a;hp=1d2ebc58a5a7a2a8cea32b138400a101aefcf0ab;hpb=c846e77a848d60dd115f00faa0d9a854161d99eb;p=dak.git diff --git a/helena b/helena index 1d2ebc58..18cfbc39 100755 --- a/helena +++ b/helena @@ -2,7 +2,7 @@ # Produces a report on NEW and BYHAND packages # Copyright (C) 2001, 2002 James Troup -# $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); ################################################################################