diff --git a/synapse/config/_base.py b/synapse/config/_base.py
index 78197e4a75..08de6ee5ec 100644
--- a/synapse/config/_base.py
+++ b/synapse/config/_base.py
@@ -18,6 +18,7 @@ import ConfigParser as configparser
import argparse
import sys
import os
+import yaml
class Config(object):
@@ -35,12 +36,8 @@ class Config(object):
@staticmethod
def read_config_file(file_path):
- config = configparser.SafeConfigParser()
- config.read([file_path])
- config_dict = {}
- for section in config.sections():
- config_dict.update(config.items(section))
- return config_dict
+ with open(file_path) as file_stream:
+ return yaml.load(file_stream)
@classmethod
def add_arguments(cls, parser):
@@ -95,15 +92,13 @@ class Config(object):
config_dir_path = os.path.dirname(config_args.config_path)
config_dir_path = os.path.abspath(config_dir_path)
cls.generate_config(args, config_dir_path)
- config = configparser.SafeConfigParser()
- config.add_section(generate_section)
+ config = {}
for key, value in vars(args).items():
if (key not in set(["config_path", "generate_config"])
and value is not None):
- print key, "=", value
- config.set(generate_section, key, str(value))
+ config[key] = value
with open(config_args.config_path, "w") as config_file:
- config.write(config_file)
+ yaml.dump(config, config_file, default_flow_style=False)
sys.exit(0)
return cls(args)
|