#! /usr/bin/env python

import os

homedir = os.environ['HOME']

mlists = open(homedir + os.sep + '.mlists', "r")

import tempfile

files = {}
for i in ("proc", "list", "alias"):
    files[i] = tempfile.NamedTemporaryFile(dir=homedir)

# Write a comment to the new .procmailrc
files["proc"].write("# Autogenerated by mkmlists from $HOME/.mlists\n")

import string
import subprocess

line = mlists.readline()
while line != '':
      # Chop leading and trailing whitespace
      line = string.strip(line)
      # Split into whitespace-separated fields
      fields = string.split(line)

      extension = fields[0]
      folder = fields[1]
      addresses = fields[2:]

      # TODO: rewrite mkmd as a python function
      retcode = subprocess.call(["mkmd", folder])
      # TODO: check retcode

      procline = "\n:0\n* ? test \"$EXTENSION\" = \"%s\"\n%s/\n" % (extension, folder)
      files["proc"].write(procline)

      if len(addresses) > 0:
          files["alias"].write("alias %s %s\n" % (extension, addresses[0]))

      for addy in addresses:
      	  files["list"].write("subscribe %s\n" % addy)

      line = mlists.readline()

for (i, fn) in (("proc", (".procmailrc.mlists",)),
               ("list", (".mutt", "lists")),
               ("alias", (".mutt", "aliases.lists"))):
    filename = string.join(fn, os.sep)
    os.unlink(filename)
    os.link(files[i].name, string.join(fn, os.sep))

# TODO: Make this into a python function that runs quickly
os.system("mailboxes &")
