summaryrefslogtreecommitdiff
path: root/utils/searx.sh
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/searx.sh
parent28c874bf3f95be7b34da4cc7957771d8bd964178 (diff)
downloadsearxng-57b8f340a6689fafd0c8d92aebd2b263b090af18.tar.gz
searxng-57b8f340a6689fafd0c8d92aebd2b263b090af18.zip
[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/searx.sh')
-rwxr-xr-xutils/searx.sh61
1 files changed, 55 insertions, 6 deletions
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