aboutsummaryrefslogtreecommitdiff
path: root/b4/pr.py
diff options
context:
space:
mode:
Diffstat (limited to 'b4/pr.py')
-rw-r--r--b4/pr.py18
1 files changed, 13 insertions, 5 deletions
diff --git a/b4/pr.py b/b4/pr.py
index 86d039c..98de07b 100644
--- a/b4/pr.py
+++ b/b4/pr.py
@@ -456,9 +456,16 @@ def main(cmdargs):
lmsg.pr_tip_commit = lmsg.pr_remote_tip_commit
if cmdargs.explode:
+ config = b4.get_main_config()
+ if config.get('save-maildirs', 'no') == 'yes':
+ save_maildir = True
+ dftext = 'maildir'
+ else:
+ save_maildir = False
+ dftext = 'mbx'
savefile = cmdargs.outmbox
if savefile is None:
- savefile = '%s.mbx' % lmsg.msgid
+ savefile = f'{lmsg.msgid}.{dftext}'
if os.path.exists(savefile):
logger.info('File exists: %s', savefile)
sys.exit(1)
@@ -472,10 +479,11 @@ def main(cmdargs):
sys.exit(1)
if msgs:
- smbx = mailbox.mbox(savefile)
- for msg in msgs:
- smbx.add(msg.as_string(policy=b4.emlpolicy).encode())
- smbx.close()
+ if save_maildir:
+ b4.save_maildir(msgs, savefile)
+ else:
+ with open(savefile, 'wb') as fh:
+ b4.save_git_am_mbox(msgs, fh)
logger.info('---')
logger.info('Saved %s', savefile)
sys.exit(0)