Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2006-08-11 23:29:55 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2006-08-11 23:29:55 (GMT)
commitfc1aefc72c35b830ae36e5f29fce31947eb70dd7 (patch)
tree3752aee2f4534d2ff31188d6cd0f12e2ae61b53b /shell
parentc5fb39875c9a6609868ef7295193840df183a6f4 (diff)
Use dbus-launch with the --exit-with-session. dbus not exiting still not fully solved.
Diffstat (limited to 'shell')
-rw-r--r--shell/PresenceService/PresenceService.py9
-rw-r--r--shell/session/Session.py8
-rwxr-xr-xshell/sugar-presence-service8
3 files changed, 12 insertions, 13 deletions
diff --git a/shell/PresenceService/PresenceService.py b/shell/PresenceService/PresenceService.py
index e1851ab..997340a 100644
--- a/shell/PresenceService/PresenceService.py
+++ b/shell/PresenceService/PresenceService.py
@@ -212,7 +212,7 @@ class PresenceServiceDBusHelper(dbus.service.Object):
in_signature="o", out_signature="")
def unregisterService(self, service_op):
found_serv = None
- serv = self._parent.get_services()
+ services = self._parent.get_services()
for serv in services:
if serv.object_path() == service_op:
found_serv = serv
@@ -688,12 +688,13 @@ class PresenceService(object):
if stype in self._registered_service_types:
self._registered_service_types.remove(stype)
-
-
def main():
loop = gobject.MainLoop()
ps = PresenceService()
- loop.run()
+ try:
+ loop.run()
+ except KeyboardInterrupt:
+ print 'Ctrl+C pressed, exiting...'
if __name__ == "__main__":
main()
diff --git a/shell/session/Session.py b/shell/session/Session.py
index 8131c1d..aac6576 100644
--- a/shell/session/Session.py
+++ b/shell/session/Session.py
@@ -2,6 +2,8 @@ import os
import gtk
import gobject
import time
+import re
+
import dbus
import dbus.dbus_bindings
@@ -13,7 +15,7 @@ import sugar.env
class DbusProcess(Process):
def __init__(self):
config = sugar.env.get_dbus_config()
- cmd = "dbus-daemon --print-address --config-file %s" % config
+ cmd = "dbus-launch --exit-with-session --config-file %s" % config
Process.__init__(self, cmd)
def get_name(self):
@@ -22,8 +24,8 @@ class DbusProcess(Process):
def start(self):
Process.start(self, True)
dbus_file = os.fdopen(self._stdout)
- addr = dbus_file.readline()
- addr = addr.strip()
+ regexp = re.compile('DBUS_SESSION_BUS_ADDRESS=\'(.*)\'\;')
+ addr = regexp.match(dbus_file.readline()).group(1)
dbus_file.close()
os.environ["DBUS_SESSION_BUS_ADDRESS"] = addr
diff --git a/shell/sugar-presence-service b/shell/sugar-presence-service
index 4b939c4..fda0d12 100755
--- a/shell/sugar-presence-service
+++ b/shell/sugar-presence-service
@@ -1,14 +1,10 @@
#!/usr/bin/python
import logging
-import sugar.env
from PresenceService import PresenceService
+import sugar.logger
-# FIXME this looks like duplicated
-level = sugar.env.get_logging_level()
-if level == 'debug':
- logging.basicConfig(level=logging.DEBUG,
- format='%(levelname)s %(message)s')
+sugar.logger.start('PresenceService')
logging.info('Starting presence service')