changeset 1122:9ae01ccf89c1

core: sat bakcend is now a twisted plugin (no more .tac file)
author Goffi <goffi@goffi.org>
date Sun, 24 Aug 2014 18:44:17 +0200
parents 64ff259d3cbb
children e89bd3a26c86
files src/core/sat_main.py src/sat.sh src/sat.tac src/twisted/plugins/sat_plugin.py
diffstat 4 files changed, 66 insertions(+), 52 deletions(-) [+]
line wrap: on
line diff
--- a/src/core/sat_main.py	Sun Aug 24 18:44:17 2014 +0200
+++ b/src/core/sat_main.py	Sun Aug 24 18:44:17 2014 +0200
@@ -19,6 +19,8 @@
 
 from sat.core.i18n import _, D_, languageSwitch
 from twisted.application import service
+from twisted.internet import glib2reactor
+glib2reactor.install()
 from twisted.internet import defer
 from twisted.words.protocols.jabber import jid
 from twisted.words.xish import domish
--- a/src/sat.sh	Sun Aug 24 18:44:17 2014 +0200
+++ b/src/sat.sh	Sun Aug 24 18:44:17 2014 +0200
@@ -45,7 +45,6 @@
 env=[]
 env.append("PID_DIR='%s'" % join(expanduser(config.get('DEFAULT', 'pid_dir')),''))
 env.append("LOG_DIR='%s'" % join(expanduser(config.get('DEFAULT', 'log_dir')),''))
-
 env.append("APP_NAME='%s'" % C.APP_NAME)
 env.append("APP_NAME_FILE='%s'" % C.APP_NAME_FILE)
 print ";".join(env)
@@ -69,11 +68,9 @@
     fi
 fi
 
-MAIN_OPTIONS="-${DAEMON}oy"
-TAP_PATH="./"
-TAP_FILE="$APP_NAME_FILE.tac"
+MAIN_OPTIONS="-${DAEMON}o"
 
-#Don't change the next line
+#Don't change the next lines
 AUTO_OPTIONS=""
 ADDITIONAL_OPTIONS="--pidfile $PID_FILE --logfile $LOG_FILE $AUTO_OPTIONS $DEBUG"
 
@@ -82,4 +79,4 @@
     mkdir $log_dir
 fi
 
-twistd $MAIN_OPTIONS $TAP_PATH$TAP_FILE $ADDITIONAL_OPTIONS
+twistd $MAIN_OPTIONS $ADDITIONAL_OPTIONS $APP_NAME_FILE
--- a/src/sat.tac	Sun Aug 24 18:44:17 2014 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-# SAT: a jabber client
-# Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Jérôme Poisson (goffi@goffi.org)
-
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Affero General Public License for more details.
-
-# You should have received a copy of the GNU Affero General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-from twisted.internet import defer
-if defer.Deferred.debug:
-    # if we are in debug mode, we want to use ipdb instead of pdb
-    try:
-        import ipdb
-        import pdb
-        pdb.set_trace = ipdb.set_trace
-        pdb.post_mortem = ipdb.post_mortem
-    except ImportError:
-        pass
-
-from twisted.application import service
-from twisted.internet import glib2reactor
-glib2reactor.install()
-
-# XXX: We need to configure logs before any log method is used, so here is the best place.
-from sat.core.constants import Const as C
-from sat.core import log_config
-log_config.satConfigure(C.LOG_BACKEND_TWISTED)
-
-# XXX: SAT must be imported after log configuration, because it write stuff to logs
-from sat.core.sat_main import SAT
-
-
-application = service.Application('SàT')
-service = SAT()
-service.setServiceParent(application)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/twisted/plugins/sat_plugin.py	Sun Aug 24 18:44:17 2014 +0200
@@ -0,0 +1,61 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# SAT: a jabber client
+# Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Jérôme Poisson (goffi@goffi.org)
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+
+# You should have received a copy of the GNU Affero General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+from twisted.internet import defer
+if defer.Deferred.debug:
+    # if we are in debug mode, we want to use ipdb instead of pdb
+    try:
+        import ipdb
+        import pdb
+        pdb.set_trace = ipdb.set_trace
+        pdb.post_mortem = ipdb.post_mortem
+    except ImportError:
+        pass
+
+from zope.interface import implements
+from twisted.python import usage
+from twisted.plugin import IPlugin
+from twisted.application.service import IServiceMaker
+
+# XXX: We need to configure logs before any log method is used, so here is the best place.
+from sat.core.constants import Const as C
+from sat.core import log_config
+log_config.satConfigure(C.LOG_BACKEND_TWISTED)
+
+# XXX: SAT must be imported after log configuration, because it write stuff to logs
+from sat.core.sat_main import SAT
+from sat.core.i18n import _
+
+
+class Options(usage.Options):
+    optParameters = []
+
+
+class SatMaker(object):
+    implements(IServiceMaker, IPlugin)
+
+    tapname = C.APP_NAME_FILE
+    description = _(u"%s XMPP client backend") % C.APP_NAME_FULL
+    options = Options
+
+    def makeService(self, options):
+        return SAT()
+
+
+serviceMaker = SatMaker()