--- palaver.py 2012-03-19 11:44:46.000000000 +0100 +++ palaver_plugin.py 2012-07-19 03:53:27.782461489 +0200 @@ -1,7 +1,40 @@ -from twisted.scripts.mktap import _tapHelper - -Palaver = _tapHelper( - "Palaver", - "palaver.tap", - "A multi-user chat xmpp/jabber component.", - "palaver") +from zope.interface import implements +from twisted.python import usage +from twisted.plugin import IPlugin +from twisted.application.service import IServiceMaker + +# Due to the directory layout, and the fact that plugin directories aren't +# modules (no __init__.py), this file is named something other than palaver.py, +# to ensure that this import pulls in the right module. +import palaver + +class Options(usage.Options): + optParameters = [ + ('rhost', None, None), + ('rport', None, None), + ('secret', None, None), + ('backend', None, 'dir'), + ('spool', None, None), + ('admin', None, 1), + ('create', None, 1), + ('dbname', None, 'muc'), + ('dbuser', None, 'muc'), + ('dbhostname', None, None), + ('log', 'l', './html/logs/'), + ('config', 'c', 'config.xml') + ] + + optFlags = [ + ('verbose', 'v', 'Show traffic'), + ] + +class ServiceFactory(object): + implements(IServiceMaker, IPlugin) + tapname = "palaver" + description = "A multi-user chat xmpp/jabber component." + options = Options + + def makeService(self, options): + return palaver.makeService(options) + +service = ServiceFactory()