summary refs log tree commit diff
diff options
context:
space:
mode:
authorJorik Schellekens <joriksch@gmail.com>2019-08-28 15:55:58 +0100
committerGitHub <noreply@github.com>2019-08-28 15:55:58 +0100
commitdeca277d0972c98a643997d7f6a388b313d2d2fb (patch)
tree2fefa49345628cee78e0c705ba58225d7a650d7e
parentUse the v2 lookup API for 3PID invites (#5897) (diff)
downloadsynapse-deca277d0972c98a643997d7f6a388b313d2d2fb.tar.xz
Let synctl use a config directory. (#5904)
* Let synctl use a config directory.
-rw-r--r--changelog.d/5904.feature1
-rw-r--r--synapse/config/__init__.py7
-rwxr-xr-xsynctl13
3 files changed, 15 insertions, 6 deletions
diff --git a/changelog.d/5904.feature b/changelog.d/5904.feature
new file mode 100644

index 0000000000..43b5304f39 --- /dev/null +++ b/changelog.d/5904.feature
@@ -0,0 +1 @@ +Let synctl accept a directory of config files. diff --git a/synapse/config/__init__.py b/synapse/config/__init__.py
index f2a5a41e92..1e76e9559d 100644 --- a/synapse/config/__init__.py +++ b/synapse/config/__init__.py
@@ -13,8 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -from ._base import ConfigError +from ._base import ConfigError, find_config_files -# export ConfigError if somebody does import * +# export ConfigError and find_config_files if somebody does +# import * # this is largely a fudge to stop PEP8 moaning about the import -__all__ = ["ConfigError"] +__all__ = ["ConfigError", "find_config_files"] diff --git a/synctl b/synctl
index 794de99ea3..a9629cf0e8 100755 --- a/synctl +++ b/synctl
@@ -30,6 +30,8 @@ from six import iteritems import yaml +from synapse.config import find_config_files + SYNAPSE = [sys.executable, "-B", "-m", "synapse.app.homeserver"] GREEN = "\x1b[1;32m" @@ -135,7 +137,8 @@ def main(): "configfile", nargs="?", default="homeserver.yaml", - help="the homeserver config file, defaults to homeserver.yaml", + help="the homeserver config file. Defaults to homeserver.yaml. May also be" + " a directory with *.yaml files", ) parser.add_argument( "-w", "--worker", metavar="WORKERCONFIG", help="start or stop a single worker" @@ -176,8 +179,12 @@ def main(): ) sys.exit(1) - with open(configfile) as stream: - config = yaml.safe_load(stream) + config_files = find_config_files([configfile]) + config = {} + for config_file in config_files: + with open(config_file) as file_stream: + yaml_config = yaml.safe_load(file_stream) + config.update(yaml_config) pidfile = config["pid_file"] cache_factor = config.get("synctl_cache_factor")