#!/usr/bin/env python

import perl

cyrusHost="localhost"
cyrusUser=os.environ["LOGNAME"]
cyrusPassword=os.environ["ACCOUNT_PASSWORD"]

class cyrusadm:

	def __init__(self):
		assert perl.require("Cyrus::IMAP::Admin")
		assert perl.eval('$imap=Cyrus::IMAP::Admin->new("%s")' % cyrusHost)
		assert perl.eval('$imap->authenticate(-user=>"%s",-mech=>"salsauth",-password=>"%s")' % (cyrusUser,cyrusPassword))

	def listMailboxes(self):
		perl.eval('@list=$imap->list("*")')
		return map(lambda x:x[0],perl.get_ref("@list"))

	def createMailbox(self,name):
		print "cyradm: creating the mailbox '%s'" % name
		assert perl.eval('$imap->create("%s")' % name)

	def deleteMailbox(self,name):
		print "cyradm: deleting the mailbox '%s'" % name
		perl.eval('$imap->setacl("%s","%s","d")' % (name,cyrusUser))
		perl.eval('$imap->delete("%s")' % name)
