From: Anthony Towns Date: Fri, 25 Nov 2005 09:29:54 +0000 (+0000) Subject: initial structural changes to jennifer to support additional queues X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=71e4c9362ab039446f2864fa4d17c423e7c2e4cb;p=dak initial structural changes to jennifer to support additional queues --- diff --git a/ChangeLog b/ChangeLog index 81a009f4..9f4cc11e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,9 @@ * Add a queue table. * Add a "queue" field in the queue_build table (currently always 0) + * jennifer: Restructure to make it easier to support special + purpose queues between unchecked and accepted. + 2005-11-25 Anthony Towns * Finishing merge of changes from spohr, by various people still diff --git a/jennifer b/jennifer index c19e1ec5..74c2b2bc 100755 --- a/jennifer +++ b/jennifer @@ -2,7 +2,7 @@ # Checks Debian packages from Incoming # Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 James Troup -# $Id: jennifer,v 1.58 2005-11-24 15:40:16 ajt Exp $ +# $Id: jennifer,v 1.59 2005-11-25 09:29:54 ajt 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 @@ -45,7 +45,7 @@ re_strip_revision = re.compile(r"-([^-]+)$"); ################################################################################ # Globals -jennifer_version = "$Revision: 1.58 $"; +jennifer_version = "$Revision: 1.59 $"; Cnf = None; Options = None; @@ -1036,12 +1036,12 @@ def action (): (summary, short_summary) = Katie.build_summaries(); - byhand = new = ""; - for file in files.keys(): - if files[file].has_key("byhand"): - byhand = 1 - elif files[file].has_key("new"): - new = 1 + # q-unapproved hax0ring + queues = [ "New", "Byhand" ] + queue_info = { + "New": { "is": is_new, "process": acknowledge_new }, + "Byhand" : { "is": is_byhand, "process": do_byhand }, + } (prompt, answer) = ("", "XXX") if Options["No-Action"] or Options["Automatic"]: @@ -1056,21 +1056,29 @@ def action (): prompt = "[R]eject, Skip, Quit ?"; if Options["Automatic"]: answer = 'R'; - elif new: - print "NEW to %s\n%s%s" % (", ".join(changes["distribution"].keys()), reject_message, summary),; - prompt = "[N]ew, Skip, Quit ?"; - if Options["Automatic"]: - answer = 'N'; - elif byhand: - print "BYHAND\n" + reject_message + summary,; - prompt = "[B]yhand, Skip, Quit ?"; - if Options["Automatic"]: - answer = 'B'; else: - print "ACCEPT\n" + reject_message + summary,; - prompt = "[A]ccept, Skip, Quit ?"; - if Options["Automatic"]: - answer = 'A'; + queue = None + for q in queues: + if queue_info[q]["is"](): + queue = q + break + if queue: + print "%s for %s\n%s%s" % ( + queue.upper(), ", ".join(changes["distribution"].keys()), + reject_message, summary), + queuekey = queue[0].upper() + if queuekey in "RQSA": + queuekey = "D" + prompt = "[D]ivert, Skip, Quit ?" + else: + prompt = "[%s]%s, Skip, Quit ?" % (queuekey, queue[1:].lower()) + if Options["Automatic"]: + answer = queuekey + else: + print "ACCEPT\n" + reject_message + summary,; + prompt = "[A]ccept, Skip, Quit ?"; + if Options["Automatic"]: + answer = 'A'; while prompt.find(answer) == -1: answer = utils.our_raw_input(prompt); @@ -1084,10 +1092,8 @@ def action (): Katie.do_reject(0, reject_message); elif answer == 'A': accept(summary, short_summary); - elif answer == 'B': - do_byhand(summary); - elif answer == 'N': - acknowledge_new (summary); + elif answer == queuekey: + queue_info[queue]["process"](summary) elif answer == 'Q': sys.exit(0) @@ -1105,6 +1111,12 @@ def accept (summary, short_summary): ################################################################################ +def is_byhand (): + for file in files.keys(): + if files[file].has_key("byhand"): + return 1 + return 0 + def do_byhand (summary): print "Moving to BYHAND holding area." Logger.log(["Moving to byhand", pkg.changes_file]); @@ -1130,6 +1142,12 @@ def do_byhand (summary): ################################################################################ +def is_new (): + for file in files.keys(): + if files[file].has_key("new"): + return 1 + return 0 + def acknowledge_new (summary): Subst = Katie.Subst;