Browse Source

[mod] searx.sh - improve some messages prompted while installation

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Markus Heiser 3 years ago
parent
commit
5b3eeb6e54
1 changed files with 27 additions and 8 deletions
  1. 27 8
      utils/searx.sh

+ 27 - 8
utils/searx.sh

@@ -213,20 +213,26 @@ main() {
                 *) usage "$_usage"; exit 42;;
             esac ;;
         install)
-            rst_title "SearXNG (install)" part
             sudo_or_exit
             case $2 in
-                all) install_all ;;
+                all)
+                    rst_title "SearXNG (install)" part
+                    install_all
+                    ;;
                 user)
+                    rst_title "SearXNG (install user)"
                     verify_continue_install
                     assert_user
                     ;;
                 pyenv)
+                    rst_title "SearXNG (install pyenv)"
                     verify_continue_install
                     create_pyenv
                     ;;
                 searx-src)
+                    rst_title "SearXNG (install searx-src)"
                     verify_continue_install
+                    assert_user
                     clone_searx
                     install_DOT_CONFIG
                     init_SEARX_SRC
@@ -241,6 +247,7 @@ main() {
                     install_settings
                     ;;
                 uwsgi)
+                    rst_title "SearXNG (install uwsgi)"
                     verify_continue_install
                     install_searx_uwsgi
                     if ! service_is_available "http://${SEARX_INTERNAL_HTTP}"; then
@@ -248,9 +255,11 @@ main() {
                     fi
                     ;;
                 packages)
+                    rst_title "SearXNG (install packages)"
                     pkg_install "$SEARX_PACKAGES"
                     ;;
                 buildhost)
+                    rst_title "SearXNG (install buildhost)"
                     pkg_install "$SEARX_PACKAGES"
                     pkg_install "$BUILD_PACKAGES"
                     ;;
@@ -377,6 +386,11 @@ installations that were installed with this script."
 assert_user() {
     rst_title "user $SERVICE_USER" section
     echo
+    if getent passwd "$SERVICE_USER"  > /dev/null; then
+       echo "user exists"
+       return 0
+    fi
+
     tee_stderr 1 <<EOF | bash | prefix_stdout
 useradd --shell /bin/bash --system \
  --home-dir "$SERVICE_HOME" \
@@ -437,26 +451,30 @@ prompt_installation_status(){
     state="$(install_searx_get_state)"
 
     case $state in
-        missing-searx-clone)
+        missing-searx-clone|missing-searx-pyenv)
             info_msg "${_BBlue}(status: $(install_searx_get_state))${_creset}"
             return 0
             ;;
         *)
-            warn_msg "SearXNG instance already installed at: $SEARX_SRC"
-            warn_msg "status:  ${_BBlue}$(install_searx_get_state)${_creset} "
+            info_msg "SearXNG instance already installed at: $SEARX_SRC"
+            info_msg "status:  ${_BBlue}$(install_searx_get_state)${_creset} "
             branch="$(git name-rev --name-only HEAD)"
             remote="$(git config branch."${branch}".remote)"
             remote_url="$(git config remote."${remote}".url)"
             eval "$(get_installed_version_variables)"
+
+            ret_val=0
             if ! [ "$GIT_URL" = "$remote_url" ]; then
                 warn_msg "instance's git URL: '${GIT_URL}'" \
                          "differs from local clone's remote URL: ${remote_url}"
+                ret_val=42
             fi
             if ! [ "$GIT_BRANCH" = "$branch" ]; then
                 warn_msg "instance git branch: ${GIT_BRANCH}" \
                          "differs from local clone's branch: ${branch}"
+                ret_val=42
             fi
-            return 42
+            return $ret_val
             ;;
     esac
 }
@@ -530,20 +548,21 @@ init_SEARX_SRC(){
     fi
 
     echo
-    echo "Manipulating files like settings.yml can break existing installation!"
     echo "Update instance with file(s) from: ${REPO_ROOT}"
     echo
     for i in "${SEARX_SRC_INIT_FILES[@]}"; do
         echo "- $i"
     done
+    echo
+    echo "Be careful when modifying an existing installation."
     if ! ask_yn "Do you really want to update these files in the instance?" Yn; then
         return 42
     fi
     for fname in "${SEARX_SRC_INIT_FILES[@]}"; do
         while true; do
             choose_one _reply "choose next step with file ${fname}" \
-                   "leave file unchanged" \
                    "replace file" \
+                   "leave file unchanged" \
                    "diff files" \
                    "interactive shell"