From 2a38e60d1ce8ac531bff3f9f48c74c3a85d7d438 Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Tue, 23 Jun 2020 19:51:23 -0700 Subject: [PATCH] cfg: Allow loading multiple configuration files Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- plinth/__main__.py | 3 ++- plinth/cfg.py | 8 ++++---- plinth/tests/test_cfg.py | 4 ++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/plinth/__main__.py b/plinth/__main__.py index e594cc0fb..6d3abd820 100644 --- a/plinth/__main__.py +++ b/plinth/__main__.py @@ -136,7 +136,8 @@ def main(): web_framework.init() logger.info('FreedomBox Service (Plinth) version - %s', __version__) - logger.info('Configuration loaded from file - %s', cfg.config_file) + for config_file in cfg.config_files: + logger.info('Configuration loaded from file - %s', config_file) logger.info('Script prefix - %s', cfg.server_dir) module_loader.include_urls() diff --git a/plinth/cfg.py b/plinth/cfg.py index 0494cd810..c09afb951 100644 --- a/plinth/cfg.py +++ b/plinth/cfg.py @@ -47,7 +47,7 @@ box_name = 'FreedomBox' # Other globals develop = False -config_file = None +config_files = [] def get_fallback_config_paths(): @@ -78,13 +78,13 @@ def read(config_path=None, root_directory=None): # Ignore missing configuration files return - global config_file # pylint: disable-msg=invalid-name,global-statement - config_file = config_path + # Keep a note of configuration files read. + config_files.append(config_path) parser = configparser.ConfigParser(defaults={ 'root': os.path.realpath(root_directory), }) - parser.read(config_file) + parser.read(config_path) config_items = ( ('Path', 'root', 'string'), diff --git a/plinth/tests/test_cfg.py b/plinth/tests/test_cfg.py index 0fab9bb89..0f709cc27 100644 --- a/plinth/tests/test_cfg.py +++ b/plinth/tests/test_cfg.py @@ -49,7 +49,7 @@ def test_read_primary_config_file(get_config_paths): cfg.read() - assert cfg.config_file == expected_config_path + assert cfg.config_files[-1] == expected_config_path assert cfg.root == expected_root_directory @@ -60,7 +60,7 @@ def test_read_fallback_config_file(): fallback_config_file = os.path.join(fallback_root, 'plinth.config') config_path, root_directory = cfg.get_fallback_config_paths() cfg.read(config_path, root_directory) - assert cfg.config_file == fallback_config_file + assert cfg.config_files[-1] == fallback_config_file assert cfg.root == fallback_root