Added options to list command
authorAaron Bentley <abentley@panoramicfeedback.com>
Tue, 22 Mar 2005 14:49:47 +0000 (14:49 +0000)
committerAaron Bentley <abentley@panoramicfeedback.com>
Tue, 22 Mar 2005 14:49:47 +0000 (14:49 +0000)
becommands/list.py

index f647564633798889649d0a10a0c7f106f094c2db..7e91bb369b52080b31169c4e7853d0576dfde113 100644 (file)
@@ -1,22 +1,36 @@
 """List bugs"""
 from libbe import bugdir, cmdutil, names
+from libbe.mapfile import FileString
 import os
 def execute(args):
+    options, args = get_parser().parse_args(args)
+    if len(args) > 0:
+        raise cmdutil.UsageError
     active = True
     severity = ("minor", "serious", "critical", "fatal")
+    if options.wishlist:
+        severity = ("wishlist",)
+    if options.closed:
+        active = False
     tree = cmdutil.bug_tree()
+    current_id = names.creator()
     def filter(bug):
+        if options.mine and bug.assigned != current_id:
+            return False
+        if options.cur_target:
+            if tree.target is None or bug.target != tree.target:
+                return False
         if active is not None:
             if bug.active != active:
                 return False
         if bug.severity not in severity:
             return False
         return True
+
     all_bugs = list(tree.list())
     bugs = [b for b in all_bugs if filter(b) ]
     if len(bugs) == 0:
         print "No matching bugs found"
-    current_id = names.creator()
     
     my_target_bugs = []
     other_target_bugs = []
@@ -63,3 +77,27 @@ def execute(args):
     list_bugs(my_bugs, "Bugs assigned to you")
     list_bugs(unassigned_bugs, "Unassigned bugs")
     list_bugs(other_bugs, "Bugs assigned to others")
+
+
+def get_parser():
+    parser = cmdutil.CmdOptionParser("be list [options]")
+    parser.add_option("-w", "--wishlist", action="store_true", dest="wishlist",
+                      help="List bugs with 'wishlist' severity")
+    parser.add_option("-c", "--closed", action="store_true", dest="closed",
+                      help="List closed bugs")
+    parser.add_option("-m", "--mine", action="store_true", dest="mine",
+                      help="List only bugs assigned to you")
+    parser.add_option("-t", "--cur-target", action="store_true", 
+                      dest="cur_target",
+                      help="List only bugs for the current target")
+    return parser
+
+longhelp="""
+This command lists bugs.  Options are cumulative, so that -mc will list only
+closed bugs assigned to you.
+"""
+
+def help():
+    fs = FileString()
+    get_parser().print_help(fs)
+    return fs.str + longhelp