mb2q: Add support for maildir input Be lazy and treat the inbox argument depending on the type. If it's a file, assume mailbox, if it's a directory assume maildir. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
diff --git a/mb2q b/mb2q index 0cd916a..ede83fa 100755 --- a/mb2q +++ b/mb2q
@@ -610,7 +610,8 @@ if __name__ == '__main__': parser = ArgumentParser(description='Mailbox 2 quilt converter') - parser.add_argument('inbox', metavar='inbox', help='Input mbox file') + parser.add_argument('inbox', metavar='inbox', + help='Input mbox file or maildir directory') parser.add_argument('-c', '--config', dest='config', default='~/.mb2q.yaml', help='Config file. Default: ~/.mb2q.yaml') parser.add_argument('-d', '--droplinks', dest='droplinks', @@ -666,7 +667,7 @@ # usually the first mail in a mbox args.drop_from = cfg.get('drop_from', ['<MAILER-DAEMON@']) # The base address for generating Link:// - args.linkbase = cfg.get('link_base', 'https://lkml.kernel.org/r/') + args.linkbase = cfg.get('link_base', 'https://lore.kernel.org/r/') # Drop all ccs? args.dropccs = cfg.get('dropccs', True) # Committer SOB before Cc and Link @@ -675,8 +676,23 @@ compile_tags() q = quilter(args) - mbox = mailbox.mbox(args.inbox, create=False) - q.scan_mbox(mbox) + + if os.path.isfile(args.inbox): + patchsuffix = args.inbox + elif os.path.isdir(args.inbox): + mbox = mailbox.Maildir(args.inbox, create=False) + else: + sys.stderr.write('Invalid input source %s\n' %args.inbox) + sys.exit(1) + + try: + q.scan_mbox(mbox) + except FileNotFoundError as ex: + sys.stderr.write('inbox %s is not valid. %s\n' %(args.inbox, ex)) + sys.exit(1) + except Exception as ex: + sys.stderr.write('%s\n' %ex) + sys.exit(1) if not len(q.patches): sys.stderr.write("No patches found in mbox\n")