Browse Source

docs: generic documentation get templating

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Markus Heiser 5 years ago
parent
commit
f25da6070e
3 changed files with 162 additions and 161 deletions
  1. 159 0
      docs/build-templates/searx.rst
  2. 2 0
      docs/conf.py
  3. 1 161
      utils/searx.sh

+ 159 - 0
docs/build-templates/searx.rst

@@ -0,0 +1,159 @@
+.. template evaluated by: ./utils/searx.sh docs
+.. hint: all dollar-names are variables, dollar sign itself is quoted by: \\$
+
+.. START distro-packages
+
+.. tabs::
+
+  .. group-tab:: Ubuntu / debian
+
+    .. code-block:: sh
+
+      $ sudo -H apt-get install -y \\
+${debian}
+
+  .. group-tab:: Arch Linux
+
+    .. code-block:: sh
+
+      $ sudo -H pacman -S --noconfirm \\
+${arch}
+
+  .. group-tab::  Fedora / RHEL
+
+    .. code-block:: sh
+
+      $ sudo -H dnf install -y \\
+${fedora}
+
+.. END distro-packages
+
+
+.. START create user
+
+.. tabs::
+
+  .. group-tab:: bash
+
+    .. code-block:: sh
+
+      $ sudo -H useradd --shell /bin/bash --system \\
+          --home-dir "$SERVICE_HOME" \\
+          --comment "Privacy-respecting metasearch engine" $SERVICE_USER
+
+      $ sudo -H mkdir "$SERVICE_HOME"
+      $ sudo -H chown -R "$SERVICE_GROUP:$SERVICE_GROUP" "$SERVICE_HOME"
+
+.. END create user
+
+.. START clone searx
+
+.. tabs::
+
+  .. group-tab:: bash
+
+    .. code-block:: sh
+
+       $ sudo -H -u ${SERVICE_USER} -i
+       (${SERVICE_USER})$ git clone "https://github.com/asciimoo/searx.git" "$SEARX_SRC"
+
+.. END clone searx
+
+.. START create virtualenv
+
+.. tabs::
+
+  .. group-tab:: bash
+
+    .. code-block:: sh
+
+       (${SERVICE_USER})$ python3 -m venv "${SEARX_PYENV}"
+       (${SERVICE_USER})$ echo ". ${SEARX_PYENV}/bin/activate" >>  "$SERVICE_HOME/.profile"
+
+.. END create virtualenv
+
+.. START manage.sh update_packages
+
+.. tabs::
+
+  .. group-tab:: bash
+
+    .. code-block:: sh
+
+       $ sudo -H -u ${SERVICE_USER} -i
+
+       (${SERVICE_USER})$ command -v python && python --version
+       $SEARX_PYENV/bin/python
+       Python 3.8.1
+
+       (${SERVICE_USER})$ cd "$SEARX_SRC"
+       (${SERVICE_USER})$ ./manage.sh update_packages
+
+.. END manage.sh update_packages
+
+.. START searx config
+
+.. tabs::
+
+  .. group-tab:: bash
+
+    .. code-block:: sh
+
+       $ sudo -H cp "$SEARX_SRC/searx/settings.yml" "${SEARX_SETTINGS_PATH}"
+       $ sudo -H sed -i -e "s/ultrasecretkey/\\$(openssl rand -hex 16)/g" "$SEARX_SETTINGS_PATH"
+       $ sudo -H sed -i -e "s/{instance_name}/searx@\\$(uname -n)/g" "$SEARX_SETTINGS_PATH"
+
+.. END searx config
+
+.. START check searx installation
+
+.. tabs::
+
+  .. group-tab:: bash
+
+    .. code-block:: sh
+
+       # enable debug ..
+       $ sudo -H sed -i -e "s/debug : False/debug : True/g" "$SEARX_SETTINGS_PATH"
+
+       # start webapp
+       $ sudo -H -u ${SERVICE_USER} -i
+       (${SERVICE_USER})$ cd ${SEARX_SRC}
+       (${SERVICE_USER})$ export SEARX_SETTINGS_PATH="${SEARX_SETTINGS_PATH}"
+       (${SERVICE_USER})$ python searx/webapp.py
+
+       # disable debug
+       $ sudo -H sed -i -e "s/debug : True/debug : False/g" "$SEARX_SETTINGS_PATH"
+
+Open WEB browser and visit http://$SEARX_INTERNAL_URL .  If you are inside a
+container or in a script, test with curl:
+
+.. tabs::
+
+  .. group-tab:: WEB browser
+
+    .. code-block:: sh
+
+       $ xgd-open http://$SEARX_INTERNAL_URL
+
+  .. group-tab:: curl
+
+    .. code-block:: none
+
+       $ curl --location --verbose --head --insecure $SEARX_INTERNAL_URL
+
+       *   Trying 127.0.0.1:8888...
+       * TCP_NODELAY set
+       * Connected to 127.0.0.1 (127.0.0.1) port 8888 (#0)
+       > HEAD / HTTP/1.1
+       > Host: 127.0.0.1:8888
+       > User-Agent: curl/7.68.0
+       > Accept: */*
+       >
+       * Mark bundle as not supporting multiuse
+       * HTTP 1.0, assume close after body
+       < HTTP/1.0 200 OK
+       HTTP/1.0 200 OK
+       ...
+
+.. END check searx installation

+ 2 - 0
docs/conf.py

@@ -23,6 +23,8 @@ master_doc = "index"
 source_suffix = '.rst'
 numfig = True
 
+exclude_patterns = ['build-templates/*.rst']
+
 from searx import webapp
 jinja_contexts = {
     'webapp': dict(**webapp.__dict__)

+ 1 - 161
utils/searx.sh

@@ -643,170 +643,10 @@ rst-doc() {
     arch="$(echo "${arch}"     | sed 's/.*/          & \\/' | sed '$ s/.$//')"
     fedora="$(echo "${fedora}" | sed 's/.*/          & \\/' | sed '$ s/.$//')"
 
-    cat <<EOF
-
-.. START distro-packages
-
-.. tabs::
-
-  .. group-tab:: Ubuntu / debian
-
-    .. code-block:: sh
-
-      $ sudo -H apt-get install -y \\
-${debian}
-
-  .. group-tab:: Arch Linux
-
-    .. code-block:: sh
-
-      $ sudo -H pacman -S --noconfirm \\
-${arch}
-
-  .. group-tab::  Fedora / RHEL
-
-    .. code-block:: sh
-
-      $ sudo -H dnf install -y \\
-${fedora}
-
-.. END distro-packages
-
-
-.. START create user
-
-.. tabs::
-
-  .. group-tab:: bash
-
-    .. code-block:: sh
-
-      $ sudo -H useradd --shell /bin/bash --system \\
-          --home-dir "$SERVICE_HOME" \\
-          --comment "Privacy-respecting metasearch engine" $SERVICE_USER
-
-      $ sudo -H mkdir "$SERVICE_HOME"
-      $ sudo -H chown -R "$SERVICE_GROUP:$SERVICE_GROUP" "$SERVICE_HOME"
-
-.. END create user
-
-.. START clone searx
-
-.. tabs::
-
-  .. group-tab:: bash
-
-    .. code-block:: sh
-
-       $ sudo -H -u ${SERVICE_USER} -i
-       (${SERVICE_USER})$ git clone "https://github.com/asciimoo/searx.git" "$SEARX_SRC"
-
-.. END clone searx
-
-.. START create virtualenv
-
-.. tabs::
-
-  .. group-tab:: bash
-
-    .. code-block:: sh
-
-       (${SERVICE_USER})$ python3 -m venv "${SEARX_PYENV}"
-       (${SERVICE_USER})$ echo ". ${SEARX_PYENV}/bin/activate" >>  "$SERVICE_HOME/.profile"
-
-.. END create virtualenv
-
-.. START manage.sh update_packages
-
-.. tabs::
-
-  .. group-tab:: bash
-
-    .. code-block:: sh
-
-       $ sudo -H -u ${SERVICE_USER} -i
-
-       (${SERVICE_USER})$ command -v python && python --version
-       $SEARX_PYENV/bin/python
-       Python 3.8.1
-
-       (${SERVICE_USER})$ cd "$SEARX_SRC"
-       (${SERVICE_USER})$ ./manage.sh update_packages
-
-.. END manage.sh update_packages
-
-.. START searx config
-
-.. tabs::
-
-  .. group-tab:: bash
-
-    .. code-block:: sh
-
-       $ sudo -H cp "$SEARX_SRC/searx/settings.yml" "${SEARX_SETTINGS_PATH}"
-       $ sudo -H sed -i -e "s/ultrasecretkey/\$(openssl rand -hex 16)/g" "$SEARX_SETTINGS_PATH"
-       $ sudo -H sed -i -e "s/{instance_name}/searx@\$(uname -n)/g" "$SEARX_SETTINGS_PATH"
-
-.. END searx config
-
-.. START check searx installation
-
-.. tabs::
-
-  .. group-tab:: bash
-
-    .. code-block:: sh
-
-       # enable debug ..
-       $ sudo -H sed -i -e "s/debug : False/debug : True/g" "$SEARX_SETTINGS_PATH"
-
-       # start webapp
-       $ sudo -H -u ${SERVICE_USER} -i
-       (${SERVICE_USER})$ cd ${SEARX_SRC}
-       (${SERVICE_USER})$ export SEARX_SETTINGS_PATH="${SEARX_SETTINGS_PATH}"
-       (${SERVICE_USER})$ python searx/webapp.py
-
-       # disable debug
-       $ sudo -H sed -i -e "s/debug : True/debug : False/g" "$SEARX_SETTINGS_PATH"
-
-Open WEB browser and visit http://$SEARX_INTERNAL_URL .  If you are inside a
-container or in a script, test with curl:
-
-.. tabs::
-
-  .. group-tab:: WEB browser
-
-    .. code-block:: sh
-
-       $ xgd-open http://$SEARX_INTERNAL_URL
-
-  .. group-tab:: curl
-
-    .. code-block:: none
-
-       $ curl --location --verbose --head --insecure $SEARX_INTERNAL_URL
-
-       *   Trying 127.0.0.1:8888...
-       * TCP_NODELAY set
-       * Connected to 127.0.0.1 (127.0.0.1) port 8888 (#0)
-       > HEAD / HTTP/1.1
-       > Host: 127.0.0.1:8888
-       > User-Agent: curl/7.68.0
-       > Accept: */*
-       >
-       * Mark bundle as not supporting multiuse
-       * HTTP 1.0, assume close after body
-       < HTTP/1.0 200 OK
-       HTTP/1.0 200 OK
-       ...
-
-.. END check searx installation
-
-EOF
+    eval "echo \"$(< ${REPO_ROOT}/docs/build-templates/searx.rst)\""
 
 }
 
-
 # ----------------------------------------------------------------------------
 main "$@"
 # ----------------------------------------------------------------------------