Mercurial > sat_docs
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flatpak/libervia_wrapper.py Tue Nov 30 21:42:06 2021 +0100 @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 +"""This script launch Libervia backend if it's not before running command""" + +import os +import sys +import subprocess +from sat.tools import config +from pathlib import Path + +command = "##COMMAND##" + +local_path = Path(config.getConfig( + config.parseMainConf(), + "", + "local_dir" +)) +socket_path = local_path / "bridge_pb" + +# 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' + +if not socket_path.is_socket(): + # backend is not launched 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"])