forked from zaclys/searxng
[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>
This commit is contained in:
parent
28c874bf3f
commit
57b8f340a6
@ -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() {
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user