aboutsummaryrefslogtreecommitdiffstats
path: root/becommands/comment.py
diff options
context:
space:
mode:
Diffstat (limited to 'becommands/comment.py')
-rw-r--r--becommands/comment.py21
1 files changed, 14 insertions, 7 deletions
diff --git a/becommands/comment.py b/becommands/comment.py
index b15a06e..29e9f88 100644
--- a/becommands/comment.py
+++ b/becommands/comment.py
@@ -17,6 +17,7 @@
"""Add a comment to a bug"""
from libbe import cmdutil, bugdir, settings_object, editor
import os
+import sys
__desc__ = __doc__
def execute(args, test=False):
@@ -83,7 +84,7 @@ def execute(args, test=False):
else:
parent = bug.comment_root
- if len(args) == 1:
+ if len(args) == 1: # try to launch an editor for comment-body entry
try:
body = editor.editor_string("Please enter your comment above")
except editor.CantFindEditor, e:
@@ -91,7 +92,11 @@ def execute(args, test=False):
if body is None:
raise cmdutil.UserError("No comment entered.")
body = body.decode('utf-8')
- else:
+ elif args[1] == '-': # read body from stdin
+ body = sys.stdin.read()
+ if not body.endswith('\n'):
+ body+='\n'
+ else: # body = arg[1]
body = args[1]
if not body.endswith('\n'):
body+='\n'
@@ -100,14 +105,16 @@ def execute(args, test=False):
bd.save()
def get_parser():
- parser = cmdutil.CmdOptionParser("be comment ID COMMENT")
+ parser = cmdutil.CmdOptionParser("be comment ID [COMMENT]")
return parser
longhelp="""
-To add a comment to a bug, use the bug ID as the argument. To reply to another
-comment, specify the comment name (as shown in "be show" output).
-
-$EDITOR is used to launch an editor. If unspecified, no comment will be
+To add a comment to a bug, use the bug ID as the argument. To reply
+to another comment, specify the comment name (as shown in "be show"
+output). COMMENT, if specified, should be either the text of your
+comment or "-", in which case the text will be read from stdin. If
+you do not specify a COMMENT, $EDITOR is used to launch an editor. If
+COMMENT is unspecified and EDITOR is not set, no comment will be
created.
"""