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"])