Added "--no-comments" to "be show".
authorW. Trevor King <wking@drexel.edu>
Tue, 21 Jul 2009 19:14:59 +0000 (15:14 -0400)
committerW. Trevor King <wking@drexel.edu>
Tue, 21 Jul 2009 19:14:59 +0000 (15:14 -0400)
Also moved the XML-header line to the top of the argument loop, since
there should only be one.  We're still missing global tags wrapping the
whole thing though...

Also set options.XML default to False.  It had been defaulting to
None, which was breaking the non-XML newline-adding check.

becommands/show.py

index d053cc3f972f821ab70f267319fc4b517f63f363..e43cfb9391303b0ae3256dfb1bb9bc525dbf108c 100644 (file)
@@ -58,6 +58,8 @@ def execute(args, test=False):
     if len(args) == 0:
         raise cmdutil.UsageError
     bd = bugdir.BugDir(from_disk=True, manipulate_encodings=not test)
+    if options.XML:
+        print '<?xml version="1.0" encoding="%s" ?>' % bd.encoding
     for shortname in args:
         if shortname.count(':') > 1:
             raise cmdutil.UserError("Invalid id '%s'." % shortname)        
@@ -68,32 +70,37 @@ def execute(args, test=False):
         else:
             bugname = shortname
             is_comment = False
+        if is_comment == True and options.comments == False:
+            continue
         bug = bd.bug_from_shortname(bugname)
         if is_comment == False:
-            if options.dumpXML:
-                print '<?xml version="1.0" encoding="%s" ?>' % bd.encoding
-                print bug.xml(show_comments=True)
+            if options.XML:
+                print bug.xml(show_comments=options.comments)
             else:
-                print bug.string(show_comments=True)
+                print bug.string(show_comments=options.comments)
         else:
             comment = bug.comment_root.comment_from_shortname(
                 shortname, bug_shortname=bugname)
-            if options.dumpXML:
+            if options.XML:
                 print comment.xml(shortname=shortname)
             else:
                 if len(args) == 1 and options.only_raw_body == True:
                     sys.__stdout__.write(comment.body)
                 else:
                     print comment.string(shortname=shortname)
-        if shortname != args[-1] and options.dumpXML == False:
+        if shortname != args[-1] and options.XML == False:
             print "" # add a blank line between bugs/comments
 
 def get_parser():
     parser = cmdutil.CmdOptionParser("be show [options] ID [ID ...]")
-    parser.add_option("-x", "--xml", action="store_true",
-                      dest='dumpXML', help="Dump as XML")
+    parser.add_option("-x", "--xml", action="store_true", default=False,
+                      dest='XML', help="Dump as XML")
     parser.add_option("--only-raw-body", action="store_true",
-                      dest='only_raw_body', help="When printing only a single comment, just print it's body.  This allows extraction of non-text content types.")
+                      dest='only_raw_body',
+                      help="When printing only a single comment, just print it's body.  This allows extraction of non-text content types.")
+    parser.add_option("-c", "--no-comments", dest="comments",
+                      action="store_false", default=True,
+                      help="Disable comment output.  This is useful if you just want more details on a bug's current status.")
     return parser
 
 longhelp="""