diff --git a/synapse/config/_base.py b/synapse/config/_base.py
index 846570811f..1cdd03e414 100644
--- a/synapse/config/_base.py
+++ b/synapse/config/_base.py
@@ -50,6 +50,16 @@ class Config(object):
)
return cls.abspath(file_path)
+ @staticmethod
+ def ensure_directory(dir_path):
+ if not os.path.exists(dir_path):
+ os.makedirs(dir_path)
+ if not os.path.isdir(dir_path):
+ raise ConfigError(
+ "%s is not a directory" % (dir_path,)
+ )
+ return dir_path
+
@classmethod
def read_file(cls, file_path, config_name):
cls.check_file(file_path, config_name)
@@ -57,6 +67,10 @@ class Config(object):
return file_stream.read()
@staticmethod
+ def default_path(name):
+ return os.path.abspath(os.path.join(os.path.curdir, name))
+
+ @staticmethod
def read_config_file(file_path):
with open(file_path) as file_stream:
return yaml.load(file_stream)
diff --git a/synapse/config/logger.py b/synapse/config/logger.py
index 089d906fa5..d352ea9be9 100644
--- a/synapse/config/logger.py
+++ b/synapse/config/logger.py
@@ -36,7 +36,7 @@ class LoggingConfig(Config):
help="The verbosity level."
)
logging_group.add_argument(
- '-f', '--log-file', dest="log_file", default=None,
+ '-f', '--log-file', dest="log_file", default="homeserver.log",
help="File to log to."
)
logging_group.add_argument(
diff --git a/synapse/config/repository.py b/synapse/config/repository.py
index 743bc26474..f1b7b1b74e 100644
--- a/synapse/config/repository.py
+++ b/synapse/config/repository.py
@@ -20,6 +20,8 @@ class ContentRepositoryConfig(Config):
def __init__(self, args):
super(ContentRepositoryConfig, self).__init__(args)
self.max_upload_size = self.parse_size(args.max_upload_size)
+ self.max_image_pixels = self.parse_size(args.max_image_pixels)
+ self.media_store_path = self.ensure_directory(args.media_store_path)
def parse_size(self, string):
sizes = {"K": 1024, "M": 1024 * 1024}
@@ -37,3 +39,10 @@ class ContentRepositoryConfig(Config):
db_group.add_argument(
"--max-upload-size", default="1M"
)
+ db_group.add_argument(
+ "--media-store-path", default=cls.default_path("media_store")
+ )
+ db_group.add_argument(
+ "--max-image-pixels", default="32M",
+ help="Maximum number of pixels that will be thumbnailed"
+ )
|