diff options
| author | Markus Heiser <markus.heiser@darmarit.de> | 2022-06-16 16:30:18 +0200 |
|---|---|---|
| committer | Markus Heiser <markus.heiser@darmarit.de> | 2022-07-30 13:39:35 +0200 |
| commit | 692708aa771c1f4927a3037ecc5aa9c06f1a2494 (patch) | |
| tree | c243e751db97f3b9aaf5bc68f8ccf9422aabe7eb /utils/lib_install.sh | |
| parent | ed8a1690296cfc55f67dc0a4dac6dee06a47bd06 (diff) | |
[clean up] drop obsolete searx, filtron and morty install scripts
Since ./utils/searxng.sh is implemented, the old installation procedures from
filtron, morty and searx can be removed.
For users who want to upgrade, the procedures for removing old installations
have still been retained.
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Diffstat (limited to 'utils/lib_install.sh')
| -rwxr-xr-x | utils/lib_install.sh | 208 |
1 files changed, 0 insertions, 208 deletions
diff --git a/utils/lib_install.sh b/utils/lib_install.sh deleted file mode 100755 index 44734e165..000000000 --- a/utils/lib_install.sh +++ /dev/null @@ -1,208 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: AGPL-3.0-or-later - -# https://github.com/koalaman/shellcheck/issues/356#issuecomment-853515285 -# shellcheck source=utils/lib.sh -. /dev/null - -# Initialize installation procedures: -# -# - Modified source_dot_config function that -# - loads .config.sh from an existing installation (at SEARXNG_SRC). -# - initialize **SEARX_SRC_INIT_FILES** -# - functions like: -# - install_log_searx_instance() -# - install_searx_get_state() -# -# usage: -# source lib_install.sh -# -# **Installation scripts** -# -# The utils/lib_install.sh is sourced by the installations scripts: -# -# - utils/searx.sh -# - utils/morty.sh -# - utils/filtron.sh -# -# If '${SEARXNG_SRC}/.config.sh' exists, the modified source_dot_config() function -# loads this configuration (instead of './.config.sh'). - -# **SEARX_SRC_INIT_FILES** -# -# Array of file names to sync into a installation at $SEARXNG_SRC. The file names -# are relative to the $REPO_ROOT. Set by function init_SEARXNG_SRC_INIT_FILES(). -# Most often theses are files like: -# - .config.sh -# - searx/settings.yml -# - utils/brand.env -# - ... - - -SEARX_SRC_INIT_FILES=() - -eval orig_"$(declare -f source_dot_config)" - -source_dot_config() { - - # Modified source_dot_config function that - # - loads .config.sh from an existing installation (at SEARXNG_SRC). - # - initialize SEARX_SRC_INIT_FILES - - if [ -z "$eval_SEARXNG_SRC" ]; then - export eval_SEARXNG_SRC='true' - SEARXNG_SRC=$("${REPO_ROOT}/utils/searx.sh" --getenv SEARXNG_SRC) - SEARXNG_PYENV=$("${REPO_ROOT}/utils/searx.sh" --getenv SEARXNG_PYENV) - SEARXNG_SETTINGS_PATH=$("${REPO_ROOT}/utils/searx.sh" --getenv SEARXNG_SETTINGS_PATH) - if [ ! -r "${SEARXNG_SRC}" ]; then - info_msg "not yet cloned: ${SEARXNG_SRC}" - orig_source_dot_config - return 0 - fi - info_msg "using instance at: ${SEARXNG_SRC}" - - # set and log DOT_CONFIG - if [ -r "${SEARXNG_SRC}/.config.sh" ]; then - info_msg "switching to ${SEARXNG_SRC}/.config.sh" - DOT_CONFIG="${SEARXNG_SRC}/.config.sh" - else - info_msg "using local config: ${DOT_CONFIG}" - fi - init_SEARX_SRC_INIT_FILES - fi -} - -init_SEARX_SRC_INIT_FILES(){ - # init environment SEARX_SRC_INIT_FILES - - # Monitor modified files in the working-tree from the local repository, only - # if the local file differs to the corresponding file in the instance. Most - # often theses are files like: - # - # - .config.sh - # - searx/settings.yml - # - utils/brand.env - # - ... - - # keep list empty if there is no installation - SEARX_SRC_INIT_FILES=() - if [ ! -r "$SEARXNG_SRC" ]; then - return 0 - fi - - local fname - local msg="" - local _prefix="" - if [[ -n ${SUDO_USER} ]]; then - _prefix="sudo -u ${SUDO_USER}" - fi - - # Monitor local modified files from the repository, only if the local file - # differs to the corresponding file in the instance - - while IFS= read -r fname; do - if [ -z "$fname" ]; then - continue - fi - if [ -r "${SEARXNG_SRC}/${fname}" ]; then - # diff "${REPO_ROOT}/${fname}" "${SEARXNG_SRC}/${fname}" - if ! cmp --silent "${REPO_ROOT}/${fname}" "${SEARXNG_SRC}/${fname}"; then - SEARX_SRC_INIT_FILES+=("${fname}") - info_msg "local clone (workingtree), modified file: ./$fname" - msg="to update use: sudo -H ./utils/searx.sh install init-src" - fi - fi - done <<< "$($_prefix git diff --name-only)" - [ -n "$msg" ] && info_msg "$msg" -} - -install_log_searx_instance() { - - echo -e "---- SearXNG instance setup ${_BBlue}(status: $(install_searx_get_state))${_creset}" - echo -e " SEARXNG_SETTINGS_PATH : ${_BBlue}${SEARXNG_SETTINGS_PATH}${_creset}" - echo -e " SEARXNG_PYENV : ${_BBlue}${SEARXNG_PYENV}${_creset}" - echo -e " SEARXNG_SRC : ${_BBlue}${SEARXNG_SRC:-none}${_creset}" - echo -e " SEARXNG_URL : ${_BBlue}${SEARXNG_URL:-none}${_creset}" - - if in_container; then - # SearXNG is listening on 127.0.0.1 and not available from outside container - # in containers the service is listening on 0.0.0.0 (see lxc-searxng.env) - echo -e "---- container setup" - echo -e " ${_BBlack}HINT:${_creset} SearXNG only listen on loopback device" \ - "${_BBlack}inside${_creset} the container." - for ip in $(global_IPs) ; do - if [[ $ip =~ .*:.* ]]; then - echo " container (IPv6): [${ip#*|}]" - else - # IPv4: - echo " container (IPv4): ${ip#*|}" - fi - done - fi -} - -install_searx_get_state(){ - - # usage: install_searx_get_state - # - # Prompts a string indicating the status of the installation procedure - # - # missing-searx-clone: - # There is no clone at ${SEARXNG_SRC} - # missing-searx-pyenv: - # There is no pyenv in ${SEARXNG_PYENV} - # installer-modified: - # There are files modified locally in the installer (clone), - # see ${SEARX_SRC_INIT_FILES} description. - # python-installed: - # Scripts can be executed in instance's environment - # - user: ${SERVICE_USER} - # - pyenv: ${SEARXNG_PYENV} - - if [ -f /etc/searx/settings.yml ]; then - err_msg "settings.yml in /etc/searx/ is deprecated, move file to folder /etc/searxng/" - fi - - if ! [ -r "${SEARXNG_SRC}" ]; then - echo "missing-searx-clone" - return - fi - if ! [ -f "${SEARXNG_PYENV}/bin/activate" ]; then - echo "missing-searx-pyenv" - return - fi - if ! [ -r "${SEARXNG_SETTINGS_PATH}" ]; then - echo "missing-settings" - return - fi - if ! [ ${#SEARX_SRC_INIT_FILES[*]} -eq 0 ]; then - echo "installer-modified" - return - fi - echo "python-installed" -} - -# Initialization of the installation procedure -# -------------------------------------------- - -# shellcheck source=utils/brand.env -source "${REPO_ROOT}/utils/brand.env" - -# SEARXNG_URL aka PUBLIC_URL: the public URL of the instance (e.g. -# "https://example.org/searx"). The value is taken from environment $SEARXNG_URL -# in ./utils/brand.env. This variable is a empty string if server.base_url in -# the settings.yml is set to 'false'. - -SEARXNG_URL="${SEARXNG_URL:-http://$(uname -n)}" -if in_container; then - # hint: Linux containers do not have DNS entries, lets use IPs - SEARXNG_URL="http://$(primary_ip)" -fi -# shellcheck disable=SC2034 -PUBLIC_URL="${SEARXNG_URL}" - -source_dot_config - -# shellcheck source=utils/lxc-searxng.env -source "${REPO_ROOT}/utils/lxc-searxng.env" -in_container && lxc_set_suite_env |