1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# -*- coding: utf-8 -*-
#
# Author: Rodney Dawes <rodney.dawes@canonical.com>
#
# Copyright 2009 Canonical Ltd.
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 3, as published
# by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranties of
# MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
import dbus
CHANGEUP_BUS_NAME = 'org.freedesktop.ChangeUp'
def register_restart_handler(appname, handler):
"""Register a restart handler for ChangeUp."""
def restart_handler(app):
if app == appname:
handler()
bus = dbus.SystemBus()
bus.add_signal_receiver(handler_function=restart_handler,
signal_name='RestartDispatched',
dbus_interface=CHANGEUP_BUS_NAME)
|