From af7c1397d1ba402bb58482c2204484d23d33a403 Mon Sep 17 00:00:00 2001
From: Erik Johnston <erik@matrix.org>
Date: Tue, 25 Aug 2015 16:58:01 +0100
Subject: [PATCH] Add config option to specify where generated files should be
 dumped

---
 synapse/config/_base.py | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/synapse/config/_base.py b/synapse/config/_base.py
index fd5080a3cb..1bc2e61ee6 100644
--- a/synapse/config/_base.py
+++ b/synapse/config/_base.py
@@ -144,6 +144,12 @@ class Config(object):
             action="store_true",
             help="Generate any missing key files then exit"
         )
+        config_parser.add_argument(
+            "--generated-directory",
+            metavar="DIRECTORY",
+            help="Used with 'generate-*' options to specify where generated"
+                 " files (such as certs and signing keys) should be stored."
+        )
         config_parser.add_argument(
             "-H", "--server-name",
             help="The server name to generate a config file for"
@@ -178,7 +184,10 @@ class Config(object):
                 )
             (config_path,) = config_files
             if not os.path.exists(config_path):
-                config_dir_path = os.path.dirname(config_path)
+                if config_args.generated_directory:
+                    config_dir_path = config_args.generated_directory
+                else:
+                    config_dir_path = os.path.dirname(config_path)
                 config_dir_path = os.path.abspath(config_dir_path)
 
                 server_name = config_args.server_name
@@ -227,7 +236,10 @@ class Config(object):
                 " -c CONFIG-FILE\""
             )
 
-        config_dir_path = os.path.dirname(config_args.config_path[-1])
+        if config_args.generated_directory:
+            config_dir_path = config_args.generated_directory
+        else:
+            config_dir_path = os.path.dirname(config_args.config_path[-1])
         config_dir_path = os.path.abspath(config_dir_path)
 
         specified_config = {}
-- 
GitLab