From d315312740333abf8450e4e0b004d219a0936488 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 28 Aug 2013 19:44:27 +0200 Subject: Properly daemonize the call to polkit gnome authentication agent. Closes: #3554 --- src/leap/bitmask/util/polkit_agent.py | 52 +++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/leap/bitmask/util/polkit_agent.py (limited to 'src/leap/bitmask/util') diff --git a/src/leap/bitmask/util/polkit_agent.py b/src/leap/bitmask/util/polkit_agent.py new file mode 100644 index 00000000..a4650273 --- /dev/null +++ b/src/leap/bitmask/util/polkit_agent.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# polkit_agent.py +# Copyright (C) 2013 LEAP +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU 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 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 . +""" +Daemonizes polkit authentication agent. +""" +import logging +import subprocess + +import daemon + +logger = logging.getLogger(__name__) + +BASE_PATH = "/usr/lib/policykit-1-gnome/"\ + + "polkit-%s-authentication-agent-1" + +GNOME_PATH = BASE_PATH % ("gnome",) +KDE_PATH = BASE_PATH % ("kde",) + + +def _launch_agent(): + logger.debug('Launching polkit auth agent') + print "launching polkit" + try: + subprocess.call(GNOME_PATH) + except Exception as exc: + try: + subprocess.call(KDE_PATH) + except Exception as exc: + logger.error('Exception while running polkit authentication agent ' + '%s' % (exc,)) + + +def launch(): + with daemon.DaemonContext(): + _launch_agent() + +if __name__ == "__main__": + launch() -- cgit v1.2.3