aux/convert-mbox-maildir.py
author Dmitriy Morozov <dmitriy@mrzv.org>
Sat, 16 Jan 2010 11:42:57 -0800
changeset 49 248ec36cef5f
parent 23 a42b9c661bc1
permissions -rw-r--r--
Merged + added documentation for "iadd --message" and "ishow --mutt" + marked c76 as fixed
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])