# HG changeset patch # User Pierre-Yves David # Date 1415137295 0 # Node ID 4b4eae00f9ddb987ffc1b72cc5d45d228cc49ed8 # Parent 6993282e5362aa7d124d0f3efba163de05509669 patchbomb: extract 'getdescription' closure in its own function Keep marching toward the promised land of simplification! diff -r 6993282e5362 -r 4b4eae00f9dd hgext/patchbomb.py --- a/hgext/patchbomb.py Tue Nov 04 21:33:57 2014 +0000 +++ b/hgext/patchbomb.py Tue Nov 04 21:41:35 2014 +0000 @@ -192,6 +192,26 @@ pass os.rmdir(tmpdir) +def _getdescription(repo, defaultbody, sender, **opts): + """obtain the body of the introduction message and return it + + This is also used for the body of email with an attached bundle. + + The body can be obtained either from the command line option or entered by + the user through the editor. + """ + ui = repo.ui + if opts.get('desc'): + body = open(opts.get('desc')).read() + else: + ui.write(_('\nWrite the introductory message for the ' + 'patch series.\n\n')) + body = ui.edit(defaultbody, sender) + # Save series description in case sendmail fails + msgfile = repo.opener('last-email.txt', 'wb') + msgfile.write(body) + msgfile.close() + return body emailopts = [ ('', 'body', None, _('send patches as inline message text (default)')), @@ -368,19 +388,6 @@ def genmsgid(id): return '<%s.%s@%s>' % (id[:20], int(start_time[0]), socket.getfqdn()) - def getdescription(body, sender): - if opts.get('desc'): - body = open(opts.get('desc')).read() - else: - ui.write(_('\nWrite the introductory message for the ' - 'patch series.\n\n')) - body = ui.edit(body, sender) - # Save series description in case sendmail fails - msgfile = repo.opener('last-email.txt', 'wb') - msgfile.write(body) - msgfile.close() - return body - def getpatchmsgs(patches, patchnames=None): msgs = [] @@ -430,7 +437,7 @@ else: diffstat = None - body = getdescription(body, sender) + body = _getdescription(repo, body, sender, **opts) msg = mail.mimeencode(ui, body, _charsets, opts.get('test')) msg['Subject'] = mail.headencode(ui, subj, _charsets, opts.get('test')) @@ -440,7 +447,7 @@ subj = (opts.get('subject') or prompt(ui, 'Subject:', 'A bundle for your repository')) - body = getdescription('', sender) + body = _getdescription(repo, '', sender, **opts) msg = email.MIMEMultipart.MIMEMultipart() if body: msg.attach(mail.mimeencode(ui, body, _charsets, opts.get('test')))