Mercurial > sat_docs
comparison flatpak/libervia_wrapper.py @ 171:a213053a03be
flatpak: update files following names change + Python 3 update:
- `build_manifest.py` has been fixed to work with recent SàT/Libervia
- filenames/scripts have been udpated to reflect project name change
- installation now uses `requirements.txt` when dev version is requested
- there are now 3 types of commands wrapper:
* `libervia_wrapper.py` uses `pb` bridge, starts backend before frontend, and stops it
when frontend is stopped. It's used by `Libervia Desktop` (Cagou)
* `libervia_wrapper-dbus.py` uses `dbus` bridge, starts backend before frontend, and
stops it when frontend is stopped. It's used for `Libervia TUI` (Primitivus)
* `libervia_wrapper-dbus.py` uses `dbus` bridge, starts backend if necessary and
doesn't stop it (to avoid waiting for backend start next time). It's used by
`Libervia CLI` (jp).
author | Goffi <goffi@goffi.org> |
---|---|
date | Tue, 30 Nov 2021 21:42:06 +0100 |
parents | flatpak/sat_wrapper.py@2602c690806b |
children |
comparison
equal
deleted
inserted
replaced
170:e38a968cb873 | 171:a213053a03be |
---|---|
1 #!/usr/bin/env python3 | |
2 """This script launch Libervia backend if it's not before running command""" | |
3 | |
4 import os | |
5 import sys | |
6 import subprocess | |
7 from sat.tools import config | |
8 from pathlib import Path | |
9 | |
10 command = "##COMMAND##" | |
11 | |
12 local_path = Path(config.getConfig( | |
13 config.parseMainConf(), | |
14 "", | |
15 "local_dir" | |
16 )) | |
17 socket_path = local_path / "bridge_pb" | |
18 | |
19 # we remove any path with "/home" from PYTHONPATH because we have | |
20 # "--filesystem=home" permission and packages in .local/lib/pythonX/site-packages may | |
21 # conflict with the ones from flatpak | |
22 clean_pythonpath = ':'.join(p for p in sys.path if p and not p.startswith('/home')) | |
23 os.environ['PYTHONPATH'] = clean_pythonpath | |
24 os.environ['PYTHONNOUSERSITE'] = '1' | |
25 | |
26 if not socket_path.is_socket(): | |
27 # backend is not launched we need to launch it | |
28 print("Launching Libervia backend") | |
29 subprocess.check_call("libervia-backend") | |
30 backend_launched = True | |
31 else: | |
32 backend_launched = False | |
33 | |
34 subprocess.run([command, *sys.argv[1:]]) | |
35 if backend_launched: | |
36 print("Stopping Libervia backend") | |
37 subprocess.check_call(["libervia-backend", "stop"]) |