Mercurial > sat_docs
view flatpak/libervia_wrapper-dbus.py @ 176:e7df6534e387 default tip
association: ajout du compte rendu de l'AG extraordinaire du 17 décembre 2022
author | Goffi <goffi@goffi.org> |
---|---|
date | Tue, 17 Jan 2023 14:13:58 +0100 |
parents | a213053a03be |
children |
line wrap: on
line source
#!/usr/bin/env python3 """This script launch Libervia backend if it's not before running command""" import os import sys import dbus import subprocess from sat.tools import config command = "##COMMAND##" const_INT_PREFIX = "org.libervia.LiberviaCLI" const_OBJ_PATH = '/org/libervia/Libervia/bridge' const_INT_PREFIX = config.getConfig( config.parseMainConf(), "", "bridge_dbus_int_prefix", "org.libervia.Libervia") # we remove any path with "/home" from PYTHONPATH because we have # "--filesystem=home" permission and packages in .local/lib/pythonX/site-packages may # conflict with the ones from flatpak clean_pythonpath = ':'.join(p for p in sys.path if p and not p.startswith('/home')) os.environ['PYTHONPATH'] = clean_pythonpath os.environ['PYTHONNOUSERSITE'] = '1' try: sessions_bus = dbus.SessionBus() db_object = sessions_bus.get_object(const_INT_PREFIX, const_OBJ_PATH) except dbus.exceptions.DBusException as e: if e._dbus_error_name != 'org.freedesktop.DBus.Error.ServiceUnknown': raise e # backend not found, we need to launch it print("Launching Libervia backend") subprocess.check_call("libervia-backend") backend_launched = True else: backend_launched = False subprocess.run([command, *sys.argv[1:]]) if backend_launched: print("Stopping Libervia backend") subprocess.check_call(["libervia-backend", "stop"])