From 00cb798ee0a2ef6b373786647e8c4bf00bfd8194 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Tue, 24 Jul 2018 12:04:33 +0800 Subject: new script: mbox2maildir Signed-off-by: Sean Whitton --- Makefile | 2 +- debian/install | 1 + debian/manpages | 1 + mbox2maildir | 45 +++++++++++++++++++++++++++++++++++++++++++++ mbox2maildir.1.pod | 35 +++++++++++++++++++++++++++++++++++ 5 files changed, 83 insertions(+), 1 deletion(-) create mode 100755 mbox2maildir create mode 100644 mbox2maildir.1.pod diff --git a/Makefile b/Makefile index 41b17c9..bcd734e 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -MANPAGES=mdmv.1 +MANPAGES=mdmv.1 mbox2maildir.1 all: $(MANPAGES) diff --git a/debian/install b/debian/install index 78d679a..6912f70 100644 --- a/debian/install +++ b/debian/install @@ -1 +1,2 @@ mdmv /usr/bin +mbox2maildir /usr/bin diff --git a/debian/manpages b/debian/manpages index ef97a1f..70548a8 100644 --- a/debian/manpages +++ b/debian/manpages @@ -1 +1,2 @@ mdmv.1 +mbox2maildir.1 diff --git a/mbox2maildir b/mbox2maildir new file mode 100755 index 0000000..34335e4 --- /dev/null +++ b/mbox2maildir @@ -0,0 +1,45 @@ +#!/usr/bin/python3 + +# mbox2maildir -- convert an mbox to a maildir using Python's libraries + +# Copyright (C) 2018 Sean Whitton +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Credits: + +# Daniel Kahn Gillmor pointed me to Python's mailbox library and made +# the suggestion in Debian bug #863570 that it could be used for the +# purpose of converting a mbox to a maildir. + +import sys +import mailbox + +def eprint(*args, **kwargs): + print(*args, file=sys.stderr, **kwargs) + +us = os.path.basename(sys.argv[0]) + +if len(sys.argv) != 3: + eprint(us + ": usage: " + us + " MBOX MAILDIR") + sys.exit(1) + +source_path = sys.argv[1] +dest_path = sys.argv[2] + +source = mailbox.mbox(source_path) +dest = mailbox.Maildir(dest_path) + +for message in source: + dest.add(message) diff --git a/mbox2maildir.1.pod b/mbox2maildir.1.pod new file mode 100644 index 0000000..afc839d --- /dev/null +++ b/mbox2maildir.1.pod @@ -0,0 +1,35 @@ +=head1 NAME + +mbox2maildir - convert an mbox to a maildir using Python's libraries + +=head1 SYNOPSYS + + mbox2maildir MBOX MAILDIR + +=head1 DESCRIPTION + +B is a very simple wrapper around Python's mailbox +library that converts an mbox to a maildir. The maildir may already +exist, in which case the messages in the mbox are added to the +maildir. + +B is an alternative to the venerable B, which +fails to process some mboxes that are out there. + +=head1 OPTIONS + +None. + +=head1 BUGS + +Hopefully different bugs to those of B. + +=head1 SEE ALSO + +mb2md(1), mbox(5), maildir(5) + +=head1 AUTHOR + +B was written by Sean Whitton +. The suggestion of using the Python +mailbox library for this purpose is due to Daniel Kahn Gillmor. -- cgit v1.2.3