From 1cfe7f2a7543b2994a1afd0d81da1962d04423b0 Mon Sep 17 00:00:00 2001 From: Alexandre Flament Date: Tue, 3 Nov 2020 15:29:59 +0100 Subject: [enh] settings.yml: add use_default_settings option This change is backward compatible with the existing configurations. If a settings.yml loaded from an user defined location (SEARX_SETTINGS_PATH or /etc/searx/settings.yml), then this settings can relied on the default settings.yml with this option: user_default_settings:True --- searx/__init__.py | 31 +++---------------------------- 1 file changed, 3 insertions(+), 28 deletions(-) (limited to 'searx/__init__.py') diff --git a/searx/__init__.py b/searx/__init__.py index 887ef806d..214e554d4 100644 --- a/searx/__init__.py +++ b/searx/__init__.py @@ -16,39 +16,15 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >. ''' import logging +import searx.settings from os import environ from os.path import realpath, dirname, join, abspath, isfile -from io import open -from yaml import safe_load searx_dir = abspath(dirname(__file__)) engine_dir = dirname(realpath(__file__)) static_path = abspath(join(dirname(__file__), 'static')) - - -def check_settings_yml(file_name): - if isfile(file_name): - return file_name - else: - return None - - -# find location of settings.yml -if 'SEARX_SETTINGS_PATH' in environ: - # if possible set path to settings using the - # enviroment variable SEARX_SETTINGS_PATH - settings_path = check_settings_yml(environ['SEARX_SETTINGS_PATH']) -else: - # if not, get it from searx code base or last solution from /etc/searx - settings_path = check_settings_yml(join(searx_dir, 'settings.yml')) or check_settings_yml('/etc/searx/settings.yml') - -if not settings_path: - raise Exception('settings.yml not found') - -# load settings -with open(settings_path, 'r', encoding='utf-8') as settings_yaml: - settings = safe_load(settings_yaml) +settings, settings_load_message = searx.settings.load_settings() if settings['ui']['static_path']: static_path = settings['ui']['static_path'] @@ -58,7 +34,6 @@ enable debug if the environnement variable SEARX_DEBUG is 1 or true (whatever the value in settings.yml) or general.debug=True in settings.yml - disable debug if the environnement variable SEARX_DEBUG is 0 or false (whatever the value in settings.yml) @@ -78,7 +53,7 @@ else: logging.basicConfig(level=logging.WARNING) logger = logging.getLogger('searx') -logger.debug('read configuration from %s', settings_path) +logger.info(settings_load_message) logger.info('Initialisation done') if 'SEARX_SECRET' in environ: -- cgit v1.2.3 From b4b81a5e1a74f03926e3c2e6f8c5fade99f7eabb Mon Sep 17 00:00:00 2001 From: Alexandre Flament Date: Fri, 27 Nov 2020 19:32:45 +0100 Subject: [enh] settings.yml: add use_default_settings option (2nd version) --- searx/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'searx/__init__.py') diff --git a/searx/__init__.py b/searx/__init__.py index 214e554d4..9bbc7c8c3 100644 --- a/searx/__init__.py +++ b/searx/__init__.py @@ -16,7 +16,7 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >. ''' import logging -import searx.settings +import searx.settings_loader from os import environ from os.path import realpath, dirname, join, abspath, isfile @@ -24,7 +24,7 @@ from os.path import realpath, dirname, join, abspath, isfile searx_dir = abspath(dirname(__file__)) engine_dir = dirname(realpath(__file__)) static_path = abspath(join(dirname(__file__), 'static')) -settings, settings_load_message = searx.settings.load_settings() +settings, settings_load_message = searx.settings_loader.load_settings() if settings['ui']['static_path']: static_path = settings['ui']['static_path'] -- cgit v1.2.3