diff options
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | debian/install | 1 | ||||
-rw-r--r-- | debian/manpages | 1 | ||||
-rwxr-xr-x | mbox2maildir | 45 | ||||
-rw-r--r-- | mbox2maildir.1.pod | 35 |
5 files changed, 83 insertions, 1 deletions
@@ -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 <http://www.gnu.org/licenses/>. + +# 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<mbox2maildir> 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<mbox2maildir> is an alternative to the venerable B<mb2md>, which +fails to process some mboxes that are out there. + +=head1 OPTIONS + +None. + +=head1 BUGS + +Hopefully different bugs to those of B<mb2md>. + +=head1 SEE ALSO + +mb2md(1), mbox(5), maildir(5) + +=head1 AUTHOR + +B<mbox2maildir> was written by Sean Whitton +<spwhitton@spwhitton.name>. The suggestion of using the Python +mailbox library for this purpose is due to Daniel Kahn Gillmor. |