summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorMarkus Heiser <markus.heiser@darmarit.de>2021-07-12 16:51:36 +0200
committerMarkus Heiser <markus.heiser@darmarit.de>2021-07-24 16:24:22 +0200
commit57b8f340a6689fafd0c8d92aebd2b263b090af18 (patch)
tree285289a54d177bf35363cc357ea74e1b6c13f598 /utils
parent28c874bf3f95be7b34da4cc7957771d8bd964178 (diff)
[mod] utils/searx.sh - add command 'inspect settings'
Inspect YAML setting <key> from SearXNG instance (${SEARX_SRC}):: utils/searx.sh inspect settings server.base_url utils/lib_install.sh should not log on stdout which is used for the output of function prompt_installation_setting(). Turned build_msg (stdout) into info_msg (stderr). Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Diffstat (limited to 'utils')
-rwxr-xr-xutils/lib_install.sh12
-rwxr-xr-xutils/searx.sh61
2 files changed, 61 insertions, 12 deletions
diff --git a/utils/lib_install.sh b/utils/lib_install.sh
index a8cb23ab2..4ad11d63d 100755
--- a/utils/lib_install.sh
+++ b/utils/lib_install.sh
@@ -55,18 +55,18 @@ source_dot_config() {
SEARX_PYENV=$("${REPO_ROOT}/utils/searx.sh" --getenv SEARX_PYENV)
SEARX_SETTINGS_PATH=$("${REPO_ROOT}/utils/searx.sh" --getenv SEARX_SETTINGS_PATH)
if [ ! -r "${SEARX_SRC}" ]; then
- build_msg INSTANCE "not yet cloned: ${SEARX_SRC}"
+ info_msg "not yet cloned: ${SEARX_SRC}"
orig_source_dot_config
return 0
fi
- build_msg INSTANCE "using instance at: ${SEARX_SRC}"
+ info_msg "using instance at: ${SEARX_SRC}"
# set and log DOT_CONFIG
if [ -r "${SEARX_SRC}/.config.sh" ]; then
- build_msg INSTANCE "switching to ${SEARX_SRC}/.config.sh"
+ info_msg "switching to ${SEARX_SRC}/.config.sh"
DOT_CONFIG="${SEARX_SRC}/.config.sh"
else
- build_msg INSTANCE "using local config: ${DOT_CONFIG}"
+ info_msg "using local config: ${DOT_CONFIG}"
fi
init_SEARX_SRC_INIT_FILES
fi
@@ -104,12 +104,12 @@ init_SEARX_SRC_INIT_FILES(){
# diff "${REPO_ROOT}/${fname}" "${SEARX_SRC}/${fname}"
if ! cmp --silent "${REPO_ROOT}/${fname}" "${SEARX_SRC}/${fname}"; then
SEARX_SRC_INIT_FILES+=("${fname}")
- build_msg INSTANCE "local clone (workingtree), modified file: ./$fname"
+ info_msg "local clone (workingtree), modified file: ./$fname"
msg="to update use: sudo -H ./utils/searx.sh install init-src"
fi
fi
done <<< "$(git diff --name-only)"
- [ -n "$msg" ] && build_msg INSTANCE "$msg"
+ [ -n "$msg" ] && info_msg "$msg"
}
install_log_searx_instance() {
diff --git a/utils/searx.sh b/utils/searx.sh
index bc57f7b4a..f02611059 100755
--- a/utils/searx.sh
+++ b/utils/searx.sh
@@ -146,7 +146,7 @@ usage::
$(basename "$0") remove [all|user|pyenv|searx-src]
$(basename "$0") activate [service]
$(basename "$0") deactivate [service]
- $(basename "$0") inspect [service]
+ $(basename "$0") inspect [service|settings <key>]
$(basename "$0") option [debug-[on|off]|image-proxy-[on|off]|result-proxy <url> <key>]
$(basename "$0") apache [install|remove]
@@ -169,8 +169,9 @@ activate service
activate and start service daemon (systemd unit)
deactivate service
stop and deactivate service daemon (systemd unit)
-inspect service
- run some small tests and inspect service's status and log
+inspect
+ :service: run some small tests and inspect service's status and log
+ :settings: inspect YAML setting <key> from SearXNG instance (${SEARX_SRC})
option
set one of the available options
apache
@@ -205,6 +206,10 @@ main() {
sudo_or_exit
inspect_service
;;
+ settings)
+ prompt_installation_setting "$3"
+ dump_return $?
+ ;;
*) usage "$_usage"; exit 42;;
esac ;;
install)
@@ -425,9 +430,14 @@ EOF
}
prompt_installation_status(){
- local _state
- _state="$(install_searx_get_state)"
- case $_state in
+
+ local state branch remote remote_url instance_setting
+ state="$(install_searx_get_state)"
+ branch="$(git name-rev --name-only HEAD)"
+ remote="$(git config branch."${branch}".remote)"
+ remote_url="$(git config remote."${remote}".url)"
+
+ case $state in
missing-searx-clone)
info_msg "${_BBlue}(status: $(install_searx_get_state))${_creset}"
return 0
@@ -435,6 +445,16 @@ prompt_installation_status(){
*)
warn_msg "SearXNG instance already installed at: $SEARX_SRC"
warn_msg "status: ${_BBlue}$(install_searx_get_state)${_creset} "
+ instance_setting="$(prompt_installation_setting brand.git_url)"
+ if ! [ "$instance_setting" = "$remote_url" ]; then
+ warn_msg "instance's brand.git_url: '${instance_setting}'" \
+ "differs from local clone's remote URL: ${remote_url}"
+ fi
+ instance_setting="$(prompt_installation_setting brand.git_branch)"
+ if ! [ "$instance_setting" = "$branch" ]; then
+ warn_msg "instance brand.git_branch: ${instance_setting}" \
+ "differs from local clone's branch: ${branch}"
+ fi
return 42
;;
esac
@@ -447,6 +467,35 @@ verify_continue_install(){
fi
}
+prompt_installation_setting(){
+
+ # usage: prompt_installation_setting brand.git_url
+ #
+ # Prompts the value of the (YAML) setting in the SearXNG instance.
+
+ local _state
+ _state="$(install_searx_get_state)"
+ case $_state in
+ python-installed|installer-modified)
+ sudo -H -u "${SERVICE_USER}" "${SEARX_PYENV}/bin/python" <<EOF
+import sys
+from searx import get_setting
+name = "${1}"
+unset = object()
+value = get_setting(name, unset)
+if value is unset:
+ sys.stderr.write("error: setting '%s' does not exists\n" % name)
+ sys.exit(42)
+print(value)
+sys.exit(0)
+EOF
+ ;;
+ *)
+ return 42
+ ;;
+ esac
+}
+
init_SEARX_SRC(){
rst_title "Update instance: ${SEARX_SRC}/" section