Mercurial > hg
comparison hgext/patchbomb.py @ 2679:f1de91be1d87
optionally send blind carbon copies
Bcc recipients may be set via long `--bcc' or hgrc only, no prompt.
author | Christian Ebert <blacktrash@gmx.net> |
---|---|
date | Wed, 26 Jul 2006 14:39:33 +0200 |
parents | bd9c39e8f38b |
children | 030d0abdf91b |
comparison
equal
deleted
inserted
replaced
2678:a781df9b5faa | 2679:f1de91be1d87 |
---|---|
36 # | 36 # |
37 # [email] | 37 # [email] |
38 # from = My Name <my@email> | 38 # from = My Name <my@email> |
39 # to = recipient1, recipient2, ... | 39 # to = recipient1, recipient2, ... |
40 # cc = cc1, cc2, ... | 40 # cc = cc1, cc2, ... |
41 # bcc = bcc1, bcc2, ... | |
41 | 42 |
42 from mercurial.demandload import * | 43 from mercurial.demandload import * |
43 demandload(globals(), '''email.MIMEMultipart email.MIMEText email.Utils | 44 demandload(globals(), '''email.MIMEMultipart email.MIMEText email.Utils |
44 mercurial:commands,hg,ui | 45 mercurial:commands,hg,ui |
45 os errno popen2 socket sys tempfile time''') | 46 os errno popen2 socket sys tempfile time''') |
183 prompt(prpt, default = default)).split(',') | 184 prompt(prpt, default = default)).split(',') |
184 return [a.strip() for a in addrs if a.strip()] | 185 return [a.strip() for a in addrs if a.strip()] |
185 to = getaddrs('to', 'To') | 186 to = getaddrs('to', 'To') |
186 cc = getaddrs('cc', 'Cc', '') | 187 cc = getaddrs('cc', 'Cc', '') |
187 | 188 |
189 bcc = opts['bcc'] or (ui.config('email', 'bcc') or | |
190 ui.config('patchbomb', 'bcc') or '').split(',') | |
191 bcc = [a.strip() for a in bcc if a.strip()] | |
192 | |
188 if len(patches) > 1: | 193 if len(patches) > 1: |
189 ui.write(_('\nWrite the introductory message for the patch series.\n\n')) | 194 ui.write(_('\nWrite the introductory message for the patch series.\n\n')) |
190 | 195 |
191 msg = email.MIMEMultipart.MIMEMultipart() | 196 msg = email.MIMEMultipart.MIMEMultipart() |
192 msg['Subject'] = '[PATCH 0 of %d] %s' % ( | 197 msg['Subject'] = '[PATCH 0 of %d] %s' % ( |
238 m['Date'] = time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime(start_time)) + ' ' + offset | 243 m['Date'] = time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime(start_time)) + ' ' + offset |
239 | 244 |
240 start_time += 1 | 245 start_time += 1 |
241 m['From'] = sender | 246 m['From'] = sender |
242 m['To'] = ', '.join(to) | 247 m['To'] = ', '.join(to) |
243 if cc: m['Cc'] = ', '.join(cc) | 248 if cc: m['Cc'] = ', '.join(cc) |
249 if bcc: m['Bcc'] = ', '.join(bcc) | |
244 if opts['test']: | 250 if opts['test']: |
245 ui.status('Displaying ', m['Subject'], ' ...\n') | 251 ui.status('Displaying ', m['Subject'], ' ...\n') |
246 fp = os.popen(os.getenv('PAGER', 'more'), 'w') | 252 fp = os.popen(os.getenv('PAGER', 'more'), 'w') |
247 try: | 253 try: |
248 fp.write(m.as_string(0)) | 254 fp.write(m.as_string(0)) |
259 fp.write(m.as_string(0)) | 265 fp.write(m.as_string(0)) |
260 fp.write('\n\n') | 266 fp.write('\n\n') |
261 fp.close() | 267 fp.close() |
262 else: | 268 else: |
263 ui.status('Sending ', m['Subject'], ' ...\n') | 269 ui.status('Sending ', m['Subject'], ' ...\n') |
264 mail.sendmail(sender, to + cc, m.as_string(0)) | 270 mail.sendmail(sender, to + bcc + cc, m.as_string(0)) |
265 | 271 |
266 cmdtable = { | 272 cmdtable = { |
267 'email': | 273 'email': |
268 (patchbomb, | 274 (patchbomb, |
269 [('c', 'cc', [], 'email addresses of copy recipients'), | 275 [('', 'bcc', [], 'email addresses of blind copy recipients'), |
276 ('c', 'cc', [], 'email addresses of copy recipients'), | |
270 ('d', 'diffstat', None, 'add diffstat output to messages'), | 277 ('d', 'diffstat', None, 'add diffstat output to messages'), |
271 ('f', 'from', '', 'email address of sender'), | 278 ('f', 'from', '', 'email address of sender'), |
272 ('', 'plain', None, 'omit hg patch header'), | 279 ('', 'plain', None, 'omit hg patch header'), |
273 ('n', 'test', None, 'print messages that would be sent'), | 280 ('n', 'test', None, 'print messages that would be sent'), |
274 ('m', 'mbox', '', 'write messages to mbox file instead of sending them'), | 281 ('m', 'mbox', '', 'write messages to mbox file instead of sending them'), |