Browse Source

[mod] utils/searxng_check.py - check a SearXNG installation

Impplement a script to check a SearXNG installation::

   ./utils/searx.sh install check

Related-to: https://github.com/searxng/searxng/issues/450
Related-to: https://github.com/searxng/searxng/pull/446#issuecomment-954599668
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Markus Heiser 3 years ago
parent
commit
f46508b35f
2 changed files with 33 additions and 0 deletions
  1. 6 0
      utils/searx.sh
  2. 27 0
      utils/searxng_check.py

+ 6 - 0
utils/searx.sh

@@ -154,6 +154,7 @@ shell
   start interactive shell from user ${SERVICE_USER}
   start interactive shell from user ${SERVICE_USER}
 install / remove
 install / remove
   :all:        complete (de-) installation of searx service
   :all:        complete (de-) installation of searx service
+  :check:      check the SearXNG installation
   :user:       add/remove service user '$SERVICE_USER' ($SERVICE_HOME)
   :user:       add/remove service user '$SERVICE_USER' ($SERVICE_HOME)
   :dot-config: copy ./config.sh to ${SEARX_SRC}
   :dot-config: copy ./config.sh to ${SEARX_SRC}
   :searx-src:  clone $GIT_URL
   :searx-src:  clone $GIT_URL
@@ -215,6 +216,11 @@ main() {
         install)
         install)
             sudo_or_exit
             sudo_or_exit
             case $2 in
             case $2 in
+                check)
+                    rst_title "SearXNG (check installation)" part
+                    verify_continue_install
+                    sudo -H -u "${SERVICE_USER}" "${SEARX_PYENV}/bin/python" "utils/searxng_check.py"
+                    ;;
                 all)
                 all)
                     rst_title "SearXNG (install)" part
                     rst_title "SearXNG (install)" part
                     install_all
                     install_all

+ 27 - 0
utils/searxng_check.py

@@ -0,0 +1,27 @@
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# lint: pylint
+"""Implement some checks in the active installation
+"""
+
+import os
+import sys
+import logging
+import warnings
+
+LOG_FORMAT_DEBUG = '%(levelname)-7s %(name)-30.30s: %(message)s'
+logging.basicConfig(level=logging.getLevelName('DEBUG'), format=LOG_FORMAT_DEBUG)
+os.environ['SEARXNG_DEBUG'] = '1'
+
+# from here on implement the checks of the installation
+
+import searx
+
+OLD_SETTING = '/etc/searx/settings.yml'
+
+if os.path.isfile(OLD_SETTING):
+    msg = (
+        '%s is no longer valid, move setting to %s' % (
+            OLD_SETTING,
+            os.environ.get('SEARXNG_SETTINGS_PATH', '/etc/searxng/settings.yml')
+        ))
+    warnings.warn(msg, DeprecationWarning)