From 9876c153ba7751bd7b3736ed463505c1dd585fa5 Mon Sep 17 00:00:00 2001 From: Joseph Nuthalapati Date: Thu, 6 Feb 2020 21:38:12 +0530 Subject: [PATCH] searx: Fix installation issue for 0.16.0 - The Debian package doesn't ship a gzip compressed settings file anymore. - Tested both the cases - settings.yml.gz and settings.yml Signed-off-by: Joseph Nuthalapati [sunil: Create parent directory before simple copy of settings.yml] [sunil: Use pathlib for simpler code] Reviewed-by: Sunil Mohan Adapa --- actions/searx | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/actions/searx b/actions/searx index d08f314b5..7ff2223f4 100755 --- a/actions/searx +++ b/actions/searx @@ -21,6 +21,7 @@ Configuration helper for searx. import argparse import os +import pathlib import secrets import shutil @@ -142,14 +143,26 @@ def write_settings(settings): yaml.dump(settings, settings_file) +def _get_example_settings_file(): + searx_doc_dir = pathlib.Path('/usr/share/doc/searx/examples/') + if (searx_doc_dir / 'settings.yml').exists(): + return searx_doc_dir / 'settings.yml' + + return searx_doc_dir / 'settings.yml.gz' + + def subcommand_setup(_): """Post installation actions for Searx""" _copy_uwsgi_configuration() _update_uwsgi_configuration() if not os.path.exists(SETTINGS_FILE): - example_settings_file = '/usr/share/doc/searx/examples/settings.yml.gz' - gunzip(example_settings_file, SETTINGS_FILE) + example_settings_file = _get_example_settings_file() + if example_settings_file.suffix == '.gz': + gunzip(str(example_settings_file), SETTINGS_FILE) + else: + pathlib.Path(SETTINGS_FILE).parent.mkdir(mode=0o755) + shutil.copy(example_settings_file, SETTINGS_FILE) settings = read_settings() _generate_secret_key(settings)