diff options
author | Markus Heiser <markus.heiser@darmarit.de> | 2024-01-07 18:33:34 +0100 |
---|---|---|
committer | Markus Heiser <markus.heiser@darmarIT.de> | 2024-01-09 16:31:19 +0100 |
commit | f9c5727ddc74b9ee3bb95225c30f57c7aeb14806 (patch) | |
tree | 9cda98183b0efcbca8ba45b53d9502a36a0201a3 /utils | |
parent | 60bc5baea31c24a72cfb4f45322e326cc62caf23 (diff) | |
download | searxng-f9c5727ddc74b9ee3bb95225c30f57c7aeb14806.tar.gz searxng-f9c5727ddc74b9ee3bb95225c30f57c7aeb14806.zip |
[mod] get rid of ./utils/brand.env and its workflow
All the environments defined in ./utils/brand.env are generated on the fly, so
there is no longer a need to define the brand environment in this file and all
the workflows to handle this file.
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Diffstat (limited to 'utils')
-rw-r--r-- | utils/brand.env | 5 | ||||
-rwxr-xr-x | utils/brand.sh | 32 | ||||
-rw-r--r-- | utils/build_env.py | 61 | ||||
-rwxr-xr-x | utils/filtron.sh | 2 | ||||
-rw-r--r-- | utils/get_setting.py | 11 | ||||
-rwxr-xr-x | utils/lxc.sh | 2 | ||||
-rwxr-xr-x | utils/morty.sh | 2 | ||||
-rwxr-xr-x | utils/searx.sh | 2 | ||||
-rwxr-xr-x | utils/searxng.sh | 11 | ||||
-rw-r--r-- | utils/searxng_check.py | 9 |
10 files changed, 46 insertions, 91 deletions
diff --git a/utils/brand.env b/utils/brand.env deleted file mode 100644 index 31afce53c..000000000 --- a/utils/brand.env +++ /dev/null @@ -1,5 +0,0 @@ -export SEARXNG_URL='' -export SEARXNG_PORT='8888' -export SEARXNG_BIND_ADDRESS='127.0.0.1' -export GIT_URL='https://github.com/searxng/searxng' -export GIT_BRANCH='master' diff --git a/utils/brand.sh b/utils/brand.sh new file mode 100755 index 000000000..1749efb31 --- /dev/null +++ b/utils/brand.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash +# SPDX-License-Identifier: AGPL-3.0-or-later + +# shellcheck source=utils/lib.sh +. /dev/null + +build.env.export() { + GIT_BRANCH="$(git branch | grep '\*' | cut -d' ' -f2-)" + GIT_REMOTE="$(git config "branch.${GIT_BRANCH}.remote")" + GIT_URL="$(git config --get "remote.${GIT_REMOTE}.url")" + if [[ "${GIT_URL}" == git@* ]]; then + GIT_URL="${GIT_URL/://}" + GIT_URL="${GIT_URL/git@/https://}" + fi + if [[ "${GIT_URL}" == *.git ]]; then + GIT_URL="${GIT_URL%.git}" + fi + + SEARXNG_URL="$(python "${REPO_ROOT}/utils/get_setting.py" server.base_url)" + SEARXNG_PORT="$(python "${REPO_ROOT}/utils/get_setting.py" server.port)" + SEARXNG_BIND_ADDRESS="$(python "${REPO_ROOT}/utils/get_setting.py" server.bind_address)" + export GIT_URL + export GIT_BRANCH + export SEARXNG_URL + export SEARXNG_PORT + export SEARXNG_BIND_ADDRESS + +} + +pushd "${REPO_ROOT}" &> /dev/null +build.env.export +popd &> /dev/null diff --git a/utils/build_env.py b/utils/build_env.py deleted file mode 100644 index 1ef8ab700..000000000 --- a/utils/build_env.py +++ /dev/null @@ -1,61 +0,0 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later -"""build environment used by shell scripts -""" - -# set path -import sys -import os -from os.path import realpath, dirname, join, sep, abspath - -repo_root = realpath(dirname(realpath(__file__)) + sep + '..') -sys.path.insert(0, repo_root) - -# Assure that the settings file from repository's working tree is used to -# generate the build_env, not from /etc/searxng/settings.yml. -os.environ['SEARXNG_SETTINGS_PATH'] = join(repo_root, 'etc', 'settings.yml') - -def _env(*arg, **kwargs): - val = get_setting(*arg, **kwargs) - if val is True: - val = '1' - elif val is False: - val = '' - return val - -# If you add or remove variables here, do not forget to update: -# - ./docs/admin/engines/settings.rst -# - ./docs/dev/makefile.rst (section make buildenv) - -name_val = [ - - ('SEARXNG_URL' , 'server.base_url'), - ('SEARXNG_PORT' , 'server.port'), - ('SEARXNG_BIND_ADDRESS' , 'server.bind_address'), - -] - -brand_env = 'utils' + sep + 'brand.env' - -# Some defaults in the settings.yml are taken from the environment, -# e.g. SEARXNG_BIND_ADDRESS (:py:obj:`searx.settings_defaults.SHEMA`). When the -# 'brand.env' file is created these environment variables should be unset first:: - -_unset = object() -for name, option in name_val: - if not os.environ.get(name, _unset) is _unset: - del os.environ[name] - -# After the variables are unset in the environ, we can import from the searx -# package (what will read the values from the settings.yml). - -from searx.version import GIT_URL, GIT_BRANCH -from searx import get_setting - -print('build %s (settings from: %s)' % (brand_env, os.environ['SEARXNG_SETTINGS_PATH'])) -sys.path.insert(0, repo_root) - -with open(repo_root + sep + brand_env, 'w', encoding='utf-8') as f: - for name, option in name_val: - print("export %s='%s'" % (name, _env(option)), file=f) - print(f"export GIT_URL='{GIT_URL}'", file=f) - print(f"export GIT_BRANCH='{GIT_BRANCH}'", file=f) diff --git a/utils/filtron.sh b/utils/filtron.sh index 7607bf6aa..2ac3b6dfd 100755 --- a/utils/filtron.sh +++ b/utils/filtron.sh @@ -4,8 +4,6 @@ # shellcheck source=utils/lib.sh source "$(dirname "${BASH_SOURCE[0]}")/lib.sh" -# shellcheck source=utils/brand.env -source "${REPO_ROOT}/utils/brand.env" # ---------------------------------------------------------------------------- # config diff --git a/utils/get_setting.py b/utils/get_setting.py index fa8d9cf8f..94c894e3e 100644 --- a/utils/get_setting.py +++ b/utils/get_setting.py @@ -12,17 +12,6 @@ from pathlib import Path repo_root = Path(__file__).resolve().parent.parent -# If you add or remove variables here, do not forget to update: -# - ./docs/admin/engines/settings.rst -# - ./docs/dev/makefile.rst (section make buildenv) - -name_val = [ - ("SEARXNG_URL", "server.base_url"), - ("SEARXNG_PORT", "server.port"), - ("SEARXNG_BIND_ADDRESS", "server.bind_address"), -] - - def main(setting_name): settings_path = repo_root / "searx" / "settings.yml" diff --git a/utils/lxc.sh b/utils/lxc.sh index 28cc30265..723451115 100755 --- a/utils/lxc.sh +++ b/utils/lxc.sh @@ -4,8 +4,6 @@ # shellcheck source=utils/lib.sh source "$(dirname "${BASH_SOURCE[0]}")/lib.sh" -# shellcheck source=utils/brand.env -source "${REPO_ROOT}/utils/brand.env" # load environment of the LXC suite LXC_ENV="${LXC_ENV:-${REPO_ROOT}/utils/lxc-searxng.env}" diff --git a/utils/morty.sh b/utils/morty.sh index 33c5c0e73..52f0fec31 100755 --- a/utils/morty.sh +++ b/utils/morty.sh @@ -3,8 +3,6 @@ # shellcheck source=utils/lib.sh source "$(dirname "${BASH_SOURCE[0]}")/lib.sh" -# shellcheck source=utils/brand.env -source "${REPO_ROOT}/utils/brand.env" # ---------------------------------------------------------------------------- # config diff --git a/utils/searx.sh b/utils/searx.sh index 719cd2031..1d339cd68 100755 --- a/utils/searx.sh +++ b/utils/searx.sh @@ -4,8 +4,6 @@ # shellcheck source=utils/lib.sh source "$(dirname "${BASH_SOURCE[0]}")/lib.sh" -# shellcheck source=utils/brand.env -source "${REPO_ROOT}/utils/brand.env" # ---------------------------------------------------------------------------- # config diff --git a/utils/searxng.sh b/utils/searxng.sh index 197188a4a..8cabbb722 100755 --- a/utils/searxng.sh +++ b/utils/searxng.sh @@ -9,8 +9,8 @@ SEARXNG_UWSGI_USE_SOCKET="${SEARXNG_UWSGI_USE_SOCKET:-true}" source "$(dirname "${BASH_SOURCE[0]}")/lib.sh" # shellcheck source=utils/lib_redis.sh source "$(dirname "${BASH_SOURCE[0]}")/lib_redis.sh" -# shellcheck source=utils/brand.env -source "${REPO_ROOT}/utils/brand.env" +# shellcheck source=utils/brand.sh +source "${REPO_ROOT}/utils/brand.sh" SERVICE_NAME="searxng" SERVICE_USER="searxng" @@ -159,7 +159,7 @@ searxng.instance.env() { echo " SEARXNG_INTERNAL_HTTP: ${SEARXNG_INTERNAL_HTTP}" fi cat <<EOF -environment ${SEARXNG_SRC}/utils/brand.env: +environment: GIT_URL : ${GIT_URL} GIT_BRANCH : ${GIT_BRANCH} SEARXNG_URL : ${SEARXNG_URL} @@ -527,7 +527,6 @@ searxng.install.settings() { if ! [[ -f "${SEARXNG_SRC}/.git/config" ]]; then die "Before install settings, first install SearXNG." - exit 42 fi mkdir -p "$(dirname "${SEARXNG_SETTINGS_PATH}")" @@ -608,8 +607,8 @@ searxng.install.uwsgi.http() { searxng.install.uwsgi.socket() { rst_para "Install ${SEARXNG_UWSGI_APP} using socket at: ${SEARXNG_UWSGI_SOCKET}" - mkdir -p "$(dirname ${SEARXNG_UWSGI_SOCKET})" - chown -R "${SERVICE_USER}:${SERVICE_GROUP}" "$(dirname ${SEARXNG_UWSGI_SOCKET})" + mkdir -p "$(dirname "${SEARXNG_UWSGI_SOCKET}")" + chown -R "${SERVICE_USER}:${SERVICE_GROUP}" "$(dirname "${SEARXNG_UWSGI_SOCKET}")" case $DIST_ID-$DIST_VERS in fedora-*) diff --git a/utils/searxng_check.py b/utils/searxng_check.py index dca4f1cda..3d2614fd4 100644 --- a/utils/searxng_check.py +++ b/utils/searxng_check.py @@ -7,6 +7,9 @@ import os import sys import logging import warnings +from pathlib import Path + +repo_root = Path(__file__).resolve().parent.parent LOG_FORMAT_DEBUG = '%(levelname)-7s %(name)-30.30s: %(message)s' logging.basicConfig(level=logging.getLevelName('DEBUG'), format=LOG_FORMAT_DEBUG) @@ -26,6 +29,12 @@ if os.path.isfile(OLD_SETTING): )) warnings.warn(msg, DeprecationWarning) +OLD_BRAND_ENV = repo_root / 'utils' / 'brand.env' + +if os.path.isfile(OLD_BRAND_ENV): + msg = ('%s is no longer needed, remove the file' % (OLD_BRAND_ENV)) + warnings.warn(msg, DeprecationWarning) + from searx import redisdb, get_setting if not redisdb.initialize(): |