Mercurial > sat_docs
view 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 source
#!/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"])