view docker/base/scripts/set_account_domain @ 138:274af514a5cf

flatpak: reworked packages + made a building script: a new `build_manifest.py` script can now be used to generate flatpak manifests for every frontend of SàT. The manifest can be used both for development versions and stable ones. Templates files (in the form `_tmp_<app-id>.json`) are used to set building instructions. A common runtime specific to SàT has been abandoned following a discussion on the official mailing list. A small wrapper is now used to launch backend automatically if it's not found. Desktop and app metadata have been added for Cagou. Jp and Primitivus don't have appdata and desktop files yet.
author Goffi <goffi@goffi.org>
date Sat, 22 Jun 2019 15:59:07 +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"])