diff docker_legacy/base/scripts/set_account_domain @ 164:29873a41aae1

docker: new docker files are now in sat main repos, this one is legacy
author Goffi <goffi@goffi.org>
date Fri, 01 Jan 2021 18:33:52 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docker_legacy/base/scripts/set_account_domain	Fri Jan 01 18:33:52 2021 +0100
@@ -0,0 +1,49 @@
+#!/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"])