contrib/convert-mbox-maildir.py
author Dmitriy Morozov <dmitriy@mrzv.org>
Fri, 15 Apr 2011 23:10:12 -0700
changeset 62 c933fa2cd204
parent 57 59814494f238
permissions -rw-r--r--
Moved everything into artemis/ subdirectory to be able to import termcolor.py
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
21
5b3579dc7abf Switched to maildir
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
     1
import mailbox, glob, os.path, os
5b3579dc7abf Switched to maildir
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
     2
import artemis
5b3579dc7abf Switched to maildir
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
     3
from mercurial import ui, hg
5b3579dc7abf Switched to maildir
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
     4
5b3579dc7abf Switched to maildir
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
     5
repo = hg.repository(ui.ui())
5b3579dc7abf Switched to maildir
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
     6
5b3579dc7abf Switched to maildir
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
     7
issue_filenames = glob.glob(os.path.join(artemis.issues_dir, '*'))
5b3579dc7abf Switched to maildir
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
     8
for fn in issue_filenames:
5b3579dc7abf Switched to maildir
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
     9
    mb = mailbox.mbox(fn)
5b3579dc7abf Switched to maildir
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    10
    messages = [m for m in mb]
5b3579dc7abf Switched to maildir
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    11
    mb.close()
5b3579dc7abf Switched to maildir
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    12
    os.unlink(fn)
5b3579dc7abf Switched to maildir
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    13
    repo.remove([fn])
5b3579dc7abf Switched to maildir
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    14
    md = mailbox.Maildir(fn)
5b3579dc7abf Switched to maildir
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    15
    md.lock()
5b3579dc7abf Switched to maildir
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    16
    keys = [md.add(m) for m in messages]
5b3579dc7abf Switched to maildir
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    17
    md.close()
5b3579dc7abf Switched to maildir
Dmitriy Morozov <morozov@cs.duke.edu>
parents:
diff changeset
    18
    for k in keys: repo.add([fn + '/new/' + k])