Merge lp:~jonobacon/ubuntu-accomplishments-daemon/daemon-session-start into lp:ubuntu-accomplishments-daemon

Proposed by Jono Bacon
Status: Merged
Merged at revision: 55
Proposed branch: lp:~jonobacon/ubuntu-accomplishments-daemon/daemon-session-start
Merge into: lp:ubuntu-accomplishments-daemon
Diff against target: 108 lines (+52/-3)
2 files modified
accomplishments/daemon/api.py (+37/-1)
accomplishments/daemon/dbusapi.py (+15/-2)
To merge this branch: bzr merge lp:~jonobacon/ubuntu-accomplishments-daemon/daemon-session-start
Reviewer Review Type Date Requested Status
Ubuntu Accomplishments Daemon Developers Pending
Review via email: mp+106916@code.launchpad.net

Description of the change

This is the branch for auto-starting the daemon on login.

Please note:

 * I added some additional API functionality to make this happen:
     - enable_daemon_session_start()
     - disable_daemon_session_start() <- this doesnt do anything yet, will add later
     - read_config_file_item() - we already had the write_config_file_item() method, this just provides a read.

You will need to have lp:~jonobacon/ubuntu-accomplishments-viewer/daemon-session-start branch to test this feature too.

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'accomplishments/daemon/api.py'
2--- accomplishments/daemon/api.py 2012-05-22 01:54:22 +0000
3+++ accomplishments/daemon/api.py 2012-05-22 23:19:20 +0000
4@@ -50,7 +50,7 @@
5 from accomplishments import exceptions
6 from accomplishments.daemon import dbusapi
7 from accomplishments.util import get_data_file, SubprocessReturnCodeProtocol
8-from accomplishments.util.paths import media_dir, module_dir1, module_dir2, installed, locale_dir
9+from accomplishments.util.paths import daemon_exec_dir, media_dir, module_dir1, module_dir2, installed, locale_dir
10
11 gettext.bindtextdomain('accomplishments-daemon',locale_dir)
12 gettext.textdomain('accomplishments-daemon')
13@@ -367,6 +367,9 @@
14 if not os.path.exists(self.dir_cache):
15 os.makedirs(self.dir_cache)
16
17+ self.dir_autostart = os.path.join(
18+ xdg.BaseDirectory.xdg_config_home, "autostart")
19+
20 print str("------------------- Ubuntu Accomplishments Daemon "
21 "- "+ str(datetime.datetime.now()) +" -------------------")
22
23@@ -504,6 +507,19 @@
24 item = config.get(section, item)
25 return item
26
27+ def read_config_file_item(self, section, item):
28+ log.msg(
29+ "Read configuration file value in '%s': %s", section, item)
30+ homedir = os.getenv("HOME")
31+ config = ConfigParser.RawConfigParser()
32+ cfile = self.dir_config + "/.accomplishments"
33+
34+ config.read(cfile)
35+ if config.has_option(section, item):
36+ return config.get(section, item)
37+ else:
38+ return "NoOption"
39+
40 def write_config_file_item(self, section, item, value):
41 """Set a configuration value in the .accomplishments file"""
42 log.msg(
43@@ -1103,6 +1119,26 @@
44 return db
45
46 # ================================
47+
48+ def enable_daemon_session_start(self):
49+ command = "twistd -noy " + daemon_exec_dir + "/accomplishments-daemon --logfile=" + os.path.join(self.dir_cache, "logs", "daemon.log")
50+ filetext = "[Desktop Entry]\n\
51+Type=Application\n\
52+Encoding=UTF-8\n\
53+Name=Accomplishments Daemon\n\
54+Exec=" + command + "\n\
55+NoDisplay=true"
56+
57+ filename = os.path.join(self.dir_autostart, "accomplishments-daemon.desktop")
58+ file = open(filename, "w")
59+ file.write(filetext)
60+ file.close
61+
62+ self.write_config_file_item("config", "daemon_sessionstart", "true")
63+
64+ def disable_daemon_session_start(self):
65+ filename = os.path.join(self.dir_autostart, "accomplishments-daemon.desktop")
66+ os.path.unlink(filename)
67
68 def accomplish(self,accomID):
69 log.msg("Accomplishing: %s" % accomID)
70
71=== modified file 'accomplishments/daemon/dbusapi.py'
72--- accomplishments/daemon/dbusapi.py 2012-05-21 19:39:27 +0000
73+++ accomplishments/daemon/dbusapi.py 2012-05-22 23:19:20 +0000
74@@ -95,6 +95,16 @@
75
76 @dbus.service.method(dbus_interface='org.ubuntu.accomplishments',
77 in_signature="", out_signature="")
78+ def enable_daemon_session_start(self):
79+ return self.api.enable_daemon_session_start()
80+
81+ @dbus.service.method(dbus_interface='org.ubuntu.accomplishments',
82+ in_signature="", out_signature="")
83+ def disable_daemon_session_start(self):
84+ return self.api.disable_daemon_session_start()
85+
86+ @dbus.service.method(dbus_interface='org.ubuntu.accomplishments',
87+ in_signature="", out_signature="")
88 def write_extra_information_file(self, item, data):
89 return self.api.write_extra_information_file(item, data)
90
91@@ -124,12 +134,15 @@
92 return self.api.write_config_file_item(section, item, value)
93
94 @dbus.service.method(dbus_interface='org.ubuntu.accomplishments',
95+ in_signature="vv", out_signature="v")
96+ def read_config_file_item(self, section, item):
97+ return self.api.read_config_file_item(section, item)
98+
99+ @dbus.service.method(dbus_interface='org.ubuntu.accomplishments',
100 in_signature="", out_signature="b")
101 def verify_ubuntu_one_account(self):
102 return self.api.verify_ubuntu_one_account()
103
104-
105-
106 @dbus.service.method(dbus_interface='org.ubuntu.accomplishments',
107 in_signature="", out_signature="")
108 def reload_accom_database(self):

Subscribers

People subscribed via source and target branches