aboutsummaryrefslogtreecommitdiffstats
path: root/interfaces/email/interactive/be-handle-mail
diff options
context:
space:
mode:
authorW. Trevor King <wking@drexel.edu>2009-07-19 11:05:32 -0400
committerW. Trevor King <wking@drexel.edu>2009-07-19 11:05:32 -0400
commitcb46052fc52a1d992057c1d2c67d8dd01fd02a45 (patch)
tree3508c4e9704474a408ad84d0ea3654de3f5ee766 /interfaces/email/interactive/be-handle-mail
parent22a2dd663c118b2962059ddfc60eb6ca8c2bce50 (diff)
downloadbugseverywhere-cb46052fc52a1d992057c1d2c67d8dd01fd02a45.tar.gz
be-handle-mail now commits after every successful email execution.
Caveats: It will produce blank commits after emails that make no changes. Todo: --fail-on-null option to "be commit" It will not commit changes due to emails that are partly successful. Todo: add "be revert"
Diffstat (limited to 'interfaces/email/interactive/be-handle-mail')
-rwxr-xr-xinterfaces/email/interactive/be-handle-mail20
1 files changed, 13 insertions, 7 deletions
diff --git a/interfaces/email/interactive/be-handle-mail b/interfaces/email/interactive/be-handle-mail
index 1fa9bc2..ecc0752 100755
--- a/interfaces/email/interactive/be-handle-mail
+++ b/interfaces/email/interactive/be-handle-mail
@@ -24,12 +24,17 @@ email types are differentiated by tags in the email subject. See
SUBJECT_TAG* for the current values.
Submit emails create a bug (and optionally add some intitial
-comments). The post-tag subject is used as the bug summary,
-and the email body is parsed for a pseudo-header. Any text
-after the psuedo-header but before to allow the submitter y should be of the form
+comments). The post-tag subject is used as the bug summary, and the
+email body is parsed for a pseudo-header. Any text after the
+psuedo-header but before a possible line starting with BREAK is added
+as the initial bug comment.
+Comment emails...
+Control emails...
+Any changes made to the repository are commited after the email is
+executed, with the email's post-tag subject as the commit message.
"""
import codecs
@@ -64,9 +69,9 @@ NEW_REQUIRED_PSEUDOHEADERS = [u"Version"]
NEW_OPTIONAL_PSEUDOHEADERS = [u"Reporter", u"Assign", u"Depend", u"Severity",
u"Status", u"Tag", u"Target"]
CONTROL_COMMENT = u"#"
-ALLOWED_COMMANDS = [u"assign", u"comment", u"depend", u"help", u"list",
- u"merge", u"new", u"open", u"severity", u"status", u"tag",
- u"target"]
+ALLOWED_COMMANDS = [u"assign", u"comment", u"commit", u"depend", u"help",
+ u"list", u"merge", u"new", u"open", u"severity", u"status",
+ u"tag", u"target"]
libbe.encoding.ENCODING = u"utf-8" # force default encoding
ENCODING = libbe.encoding.get_encoding()
@@ -380,11 +385,11 @@ class Message (object):
otherwise returns a list of suggested commands to run.
"""
self.validate_subject()
+ tag,subject = self._split_subject()
tag_type,value = self._subject_tag_type()
commands = []
if tag_type == u"new":
command = u"new"
- tag,subject = self._split_subject()
summary = subject
options = {u"Reporter": self.author_addr()}
body,mime_type = list(self._get_bodies_and_mime_types())[0]
@@ -433,6 +438,7 @@ class Message (object):
raise InvalidEmail(self, u"No commands in control email.")
else:
raise Exception, u"Unrecognized tag type '%s'" % tag_type
+ commands.append(Command(self, "commit", [subject]))
return commands
def run(self):
self._begin_response()