view docker/base/scripts/set_account_domain @ 161:4fe61dcd856e

flatpak: update build-manifest to retrieve dependencies without initial download phase: - dependencies are now entirely retrieved from the installation, and requirement are build from there. The source package is currently always used, and it is now possible to use PYTHON_DEP_PREINSTALL to add extra packages or use a specific version of a package. - fixed insertion of `release_elt` for dev version at the right location. - `branch` is not set anymore for stable versions. - libxslt is not added anymore as it is part of freedesktop runtime - flathub share-modules is now used for Python 2
author Goffi <goffi@goffi.org>
date Fri, 23 Aug 2019 16:41:05 +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"])