1
0
mirror of https://github.com/zokradonh/kopano-docker synced 2025-06-07 16:06:14 +00:00
kopano-docker/base/kcconf.py
Andre Zoledziowski 57ab45f471 BugFix: Python3
2018-04-16 17:01:28 +02:00

34 lines
1.1 KiB
Python

"""This module provides functions for easy editing of kopano config files \
via environment variables"""
import re
import os
import os.path
def configkopano(configs):
for filename, config in configs.items():
if not os.path.exists(filename):
return
with open(filename) as f:
contents = f.read()
f.close()
for key, newvalue in config.items():
contents = re.sub(r"^\s*#?\s*{}\s*=.*".format(key), r"{} = {}".format(key, newvalue), contents, 0, re.MULTILINE)
with open(filename, "w") as f:
f.write(contents)
f.close()
def parseenvironmentvariables(prependingpath):
configs = dict()
for name, value in os.environ.items():
namematch = re.match(r"^KCCONF_([A-Z]+)_([A-Z0-9_]+)$", name)
if namematch != None:
filename = namematch.group(1).lower() + ".cfg"
if prependingpath + filename not in configs:
configs[prependingpath + filename] = dict()
confkey = namematch.group(2).lower()
configs[prependingpath + filename][confkey] = value
return configs