view flatpak/sat_wrapper.py @ 153:df75b62e653e

flatpak (build_manifest): some fixes needed after runtime update: - removed `--optimize=1` for lxml, as it is making the build fail - added build flag on x86_64 for Pillow (will need to be adapted if we build on other architectures) - added a module for Python 2.7.16, Python 2 not being included anymore in the runtime - DEFAULT_MANIFEST modules are put at the beginning of modules
author Goffi <goffi@goffi.org>
date Fri, 28 Jun 2019 15:19:47 +0200
parents 2602c690806b
children
line wrap: on
line source

#!/usr/bin/env python2
# -*- coding: utf-8 -*-
"""This script launch SàT backend if it's not before running command"""

import os
import sys
import dbus
import subprocess

command = "##COMMAND##"
const_INT_PREFIX = "org.salutatoi.SAT"
const_OBJ_PATH = '/org/salutatoi/SAT/bridge'

# we remove any path with "/home" from PYTHONPATH because we have
# "--filesystem=home" permission and packages in .local/lib/python2.7/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'

try:
    sessions_bus = dbus.SessionBus()
    db_object = sessions_bus.get_object(const_INT_PREFIX,
                                        const_OBJ_PATH)
except dbus.exceptions.DBusException as e:
    if e._dbus_error_name != 'org.freedesktop.DBus.Error.ServiceUnknown':
        raise e
    # backend not found, we need to launch it
    print("Launching SàT backend")
    subprocess.check_call("sat")

os.execlp(command, command, *sys.argv[1:])