Mercurial > sat_docs
view docker/base/scripts/set_account_domain @ 134:4549cf265131
flatpak: install D-Bus .service on each frontend:
work around lack of dependency handling in Flatpak by installing D-Bus .service on each frontend.
This works because all backend is included in the runtime, but we have to add backend permissions to all frontend, and set --own-name=org.salutatoi.SAT.
Furthermore, if one frontend is removed, the symbolic link is removed and the backend will not be launched automatically anymore, even if other frontends are still there.
The benefict of this method is that backend has not to be installed manually to use a frontend.
author | Goffi <goffi@goffi.org> |
---|---|
date | Sun, 15 Jul 2018 16:56:55 +0200 |
parents | b69056368901 |
children |
line wrap: on
line source
#!/usr/bin/env python2 # This script set account domain in sat.conf if not already set # if not set, domain is got from prosody container or DOMAIN environment variable import os, os.path, xmlrpclib, ConfigParser, socket, subprocess from sat.core.constants import Const as C from sat.tools import config as sat_config SECTION = "plugin account" OPTION = "new_account_domain" CONFIG_PATH = "/home/sat/.config/sat/sat.conf" try: os.makedirs(os.path.dirname(CONFIG_PATH)) except OSError: pass config = ConfigParser.SafeConfigParser() config.read(C.CONFIG_FILES) domain = sat_config.getConfig(config, SECTION, OPTION) if domain is None: os.getenv("DOMAIN") if domain is None: proxy = xmlrpclib.ServerProxy("http://prosody:9999/") try: if "prosody" not in open("/etc/hosts").read(): raise socket.gaierror # this avoid waiting for timeout if prosody is not linked domain = proxy.getenv("DOMAIN") except socket.gaierror: print "No prosody container connected or known domain, using \"localhost\" for new domains" domain = "localhost" config = ConfigParser.SafeConfigParser() config.readfp(open(CONFIG_PATH, "a+")) try: config.add_section(SECTION) except ConfigParser.DuplicateSectionError: pass config.set(SECTION, OPTION, domain) config.write(open(CONFIG_PATH, "w")) subprocess.call(["add_host", domain, "prosody"]) for subdomain in ("chat", "proxy", "upload", "pubsub", "salut"): subprocess.call(["add_host", "{}.{}".format(subdomain, domain), "prosody"])