Mercurial > sat_docs
annotate flatpak/libervia_wrapper-dbus_keep.py @ 173:0d2eb834fc59
screenshots: more 0.8 screenshots + apng screencast
author | Goffi <goffi@goffi.org> |
---|---|
date | Tue, 30 Nov 2021 22:14:01 +0100 |
parents | a213053a03be |
children |
rev | line source |
---|---|
171
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
1 #!/usr/bin/env python3 |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
2 |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
3 """This script launch Libervia backend if it's not before running command, and keep it running afterwards""" |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
4 |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
5 # We keep the backend running to avoid the backend launching cost each time the frontend is used |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
6 |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
7 import os |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
8 import sys |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
9 import dbus |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
10 import subprocess |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
11 from sat.tools import config |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
12 |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
13 command = "##COMMAND##" |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
14 const_INT_PREFIX = "org.libervia.LiberviaCLI" |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
15 const_OBJ_PATH = '/org/libervia/Libervia/bridge' |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
16 |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
17 const_INT_PREFIX = config.getConfig( |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
18 config.parseMainConf(), |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
19 "", |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
20 "bridge_dbus_int_prefix", |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
21 "org.libervia.Libervia") |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
22 |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
23 # we remove any path with "/home" from PYTHONPATH because we have |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
24 # "--filesystem=home" permission and packages in .local/lib/pythonX/site-packages may |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
25 # conflict with the ones from flatpak |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
26 clean_pythonpath = ':'.join(p for p in sys.path if p and not p.startswith('/home')) |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
27 os.environ['PYTHONPATH'] = clean_pythonpath |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
28 os.environ['PYTHONNOUSERSITE'] = '1' |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
29 |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
30 try: |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
31 sessions_bus = dbus.SessionBus() |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
32 db_object = sessions_bus.get_object(const_INT_PREFIX, |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
33 const_OBJ_PATH) |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
34 except dbus.exceptions.DBusException as e: |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
35 if e._dbus_error_name != 'org.freedesktop.DBus.Error.ServiceUnknown': |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
36 raise e |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
37 # backend not found, we need to launch it |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
38 print("Launching Libervia backend") |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
39 subprocess.check_call("libervia-backend") |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
40 |
a213053a03be
flatpak: update files following names change + Python 3 update:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
41 os.execlp(command, command, *sys.argv[1:]) |