diff options
author | Jorik Schellekens <joriksch@gmail.com> | 2019-08-28 13:12:22 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-28 13:12:22 +0100 |
commit | 6d97843793d59bc5d307475a6a6185ff107e116b (patch) | |
tree | 2fbc743fc3f10df4147fa5142f2175f583483554 /synapse/config/database.py | |
parent | Implement a structured logging output system. (#5680) (diff) | |
download | synapse-6d97843793d59bc5d307475a6a6185ff107e116b.tar.xz |
Config templating (#5900)
Template config files * Imagine a system composed entirely of x, y, z etc and the basic operations.. Wait George, why XOR? Why not just neq? George: Eh, I didn't think of that.. Co-Authored-By: Erik Johnston <erik@matrix.org>
Diffstat (limited to 'synapse/config/database.py')
-rw-r--r-- | synapse/config/database.py | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/synapse/config/database.py b/synapse/config/database.py index 746a6cd1f4..118aafbd4a 100644 --- a/synapse/config/database.py +++ b/synapse/config/database.py @@ -13,6 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. import os +from textwrap import indent + +import yaml from ._base import Config @@ -38,20 +41,28 @@ class DatabaseConfig(Config): self.set_databasepath(config.get("database_path")) - def generate_config_section(self, data_dir_path, **kwargs): - database_path = os.path.join(data_dir_path, "homeserver.db") - return ( - """\ - ## Database ## - - database: - # The database engine name + def generate_config_section(self, data_dir_path, database_conf, **kwargs): + if not database_conf: + database_path = os.path.join(data_dir_path, "homeserver.db") + database_conf = ( + """# The database engine name name: "sqlite3" # Arguments to pass to the engine args: # Path to the database database: "%(database_path)s" + """ + % locals() + ) + else: + database_conf = indent(yaml.dump(database_conf), " " * 10).lstrip() + + return ( + """\ + ## Database ## + database: + %(database_conf)s # Number of events to cache in memory. # #event_cache_size: 10K |