]> git.decadent.org.uk Git - dak.git/commitdiff
initial structural changes to jennifer to support additional queues
authorAnthony Towns <aj@azure.humbug.org.au>
Fri, 25 Nov 2005 09:29:54 +0000 (09:29 +0000)
committerAnthony Towns <aj@azure.humbug.org.au>
Fri, 25 Nov 2005 09:29:54 +0000 (09:29 +0000)
ChangeLog
jennifer

index 81a009f49a0d1518d2b2ee04f421a2c1dd98c08e..9f4cc11e972e4affb18916ba207843273b23998a 100644 (file)
--- 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  <aj@erisian.com.au>
 
        * Finishing merge of changes from spohr, by various people still
index c19e1ec545a0b9a5d739b8a9a30d738f8ad2f45c..74c2b2bca2fd9a90c9de5798785a17fab99be9b1 100755 (executable)
--- a/jennifer
+++ b/jennifer
@@ -2,7 +2,7 @@
 
 # Checks Debian packages from Incoming
 # Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005  James Troup <james@nocrew.org>
-# $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;