#!/usr/bin/python """Glue Maildir++/dovecot to kmail""" from __future__ import print_function import os import sys def main(argv): mail = os.path.expanduser('~/.mail') for root, dirs, files in os.walk(mail): try: dirs.remove('cur') dirs.remove('new') dirs.remove('tmp') except ValueError: pass if not root.endswith('.directory'): continue print(root, file=sys.stderr) for d in dirs: # We will start with: # root = ~/.mail/.gentoo.org.directory/ # d = buildroot # So create symlinks: # ~/.mail/gentoo.org/.buildroot -> ../.gentoo.org.directory/buildroot # ~/.mail/ parent = os.path.dirname(root) # .gentoo.org.directory maildir = os.path.basename(root) if maildir[0] == '.': continue # ../.gentoo.org.directory/buildroot target = os.path.join('..', maildir, d) # gentoo.org maildir = maildir[1:-10] # ~/.mail/gentoo.org/.buildroot source = os.path.join(parent, maildir, '.' + d) print('%s -> %s' % (source, target), file=sys.stderr) if not os.path.islink(source): os.symlink(target, source) fsdir = root[len(mail) + 1:] parts = fsdir.split('/') fsdir = '/'.join(parts[0:-1] + [parts[-1][1:-10]]) ns_parts = [x[1:-10] for x in parts] ns = '/'.join(ns_parts) extra = '' if ns == 'inbox': extra = '\n\tinbox = yes' print("""\ namespace "%(ns)s" {%(extra)s separator = / prefix = "%(ns)s/" location = "maildir:~/.mail/%(fsdir)s" } """ % {'ns': ns, 'fsdir': fsdir, 'extra': extra}) if __name__ == '__main__': sys.exit(main(sys.argv[1:]))