Add '%(maintainer)s' variable to the e-mail template
authorCatalin Marinas <catalin.marinas@gmail.com>
Fri, 29 Jul 2005 15:30:24 +0000 (16:30 +0100)
committerCatalin Marinas <catalin.marinas@gmail.com>
Fri, 29 Jul 2005 15:30:24 +0000 (16:30 +0100)
Following some discussions on the git list, it looks like the
committer's e-mail address doesn't have to be a valid one. The
above variable is generated from the author details defined in
the stgitrc file and is placed on the From: line in the default
e-mail template.

Signed-off-by: Catalin Marinas <catalin.marinas@gmail.com>
stgit/commands/mail.py
templates/patchmail.tmpl

index e2fcbec..58965e2 100644 (file)
@@ -51,6 +51,7 @@ additional headers and a blank line. The patch e-mail template accepts
 the following variables:
 
   %(patch)s        - patch name
+  %(maintainer)s   - 'authname <authemail>' as read from the config file
   %(shortdescr)s   - the first line of the patch description
   %(longdescr)s    - the rest of the patch description, after the first line
   %(endofheaders)s - delimiter between e-mail headers and body
@@ -65,8 +66,8 @@ the following variables:
   %(commname)s     - committer's name
   %(commemail)s    - committer's e-mail
 
-For the preamble e-mail template, only the %(date)s, %(endofheaders)s
-and %(totalnr)s variables are supported."""
+For the preamble e-mail template, only the %(maintainer)s, %(date)s,
+%(endofheaders)s and %(totalnr)s variables are supported."""
 
 options = [make_option('-a', '--all',
                        help = 'e-mail all the applied patches',
@@ -94,6 +95,17 @@ options = [make_option('-a', '--all',
                        help = 'username for SMTP authentication')]
 
 
+def __get_maintainer():
+    """Return the 'authname <authemail>' string as read from the
+    configuration file
+    """
+    if config.has_option('stgit', 'authname') \
+           and config.has_option('stgit', 'authemail'):
+        return '%s <%s>' % (config.get('stgit', 'authname'),
+                            config.get('stgit', 'authemail'))
+    else:
+        return None
+
 def __parse_addresses(string):
     """Return a two elements tuple: (from, [to])
     """
@@ -141,6 +153,10 @@ def __send_message(smtpserver, from_addr, to_addr_list, msg, sleep,
 def __build_first(tmpl, total_nr, msg_id, options):
     """Build the first message (series description) to be sent via SMTP
     """
+    maintainer = __get_maintainer()
+    if not maintainer:
+        maintainer = ''
+
     headers_end = ''
     if options.to:
         headers_end += 'To: %s\n' % options.to
@@ -152,7 +168,8 @@ def __build_first(tmpl, total_nr, msg_id, options):
 
     total_nr_str = str(total_nr)
 
-    tmpl_dict = {'endofheaders': headers_end,
+    tmpl_dict = {'maintainer':   maintainer,
+                 'endofheaders': headers_end,
                  'date':         email.Utils.formatdate(localtime = True),
                  'totalnr':      total_nr_str}
 
@@ -167,7 +184,6 @@ def __build_first(tmpl, total_nr, msg_id, options):
 
     return msg
 
-
 def __build_message(tmpl, patch, patch_nr, total_nr, msg_id, ref_id, options):
     """Build the message to be sent via SMTP
     """
@@ -180,6 +196,10 @@ def __build_message(tmpl, patch, patch_nr, total_nr, msg_id, ref_id, options):
     long_descr = reduce(lambda x, y: x + '\n' + y,
                         descr_lines[1:], '').lstrip()
 
+    maintainer = __get_maintainer()
+    if not maintainer:
+        maintainer = '%s <%s>' % (p.get_commname(), p.get_commemail())
+
     headers_end = ''
     if options.to:
         headers_end += 'To: %s\n' % options.to
@@ -196,6 +216,7 @@ def __build_message(tmpl, patch, patch_nr, total_nr, msg_id, ref_id, options):
     patch_nr_str = str(patch_nr).zfill(len(total_nr_str))
 
     tmpl_dict = {'patch':        patch,
+                 'maintainer':   maintainer,
                  'shortdescr':   short_descr,
                  'longdescr':    long_descr,
                  'endofheaders': headers_end,
@@ -226,7 +247,6 @@ def __build_message(tmpl, patch, patch_nr, total_nr, msg_id, ref_id, options):
 
     return msg
 
-
 def func(parser, options, args):
     """Send the patches by e-mail using the patchmail.tmpl file as
     a template
index 4724b5f..4c1136d 100644 (file)
@@ -1,4 +1,4 @@
-From: %(commname)s <%(commemail)s>
+From: %(maintainer)s
 Subject: [PATCH %(patchnr)s/%(totalnr)s] %(shortdescr)s
 Date: %(date)s
 %(endofheaders)s