From 0086e12574bc31b1a12f9eb94066b71204309390 Mon Sep 17 00:00:00 2001
From: Roman Alifanov <ximper@etersoft.ru>
Date: Sun, 23 Jun 2024 18:20:52 +0300
Subject: [PATCH] removing the mention of epmgpi and leading to an adequate
 view

---
 ximper-yad-respondent-func.sh | 100 +++++++++++++---------------------
 1 file changed, 39 insertions(+), 61 deletions(-)
 mode change 100755 => 100644 ximper-yad-respondent-func.sh

diff --git a/ximper-yad-respondent-func.sh b/ximper-yad-respondent-func.sh
old mode 100755
new mode 100644
index cc157d7..a7c253c
--- a/ximper-yad-respondent-func.sh
+++ b/ximper-yad-respondent-func.sh
@@ -1,89 +1,67 @@
 #!/bin/bash
 
 if [ $(id -u) -eq 0 ]; then
-  echo "Нельзя запускать epmgpi от пользователя root."
+  echo "Нельзя запускать respondent от пользователя root."
   exit 1
 fi
 
-YAD_DEFAULT="/usr/bin/yad --window-icon=epmgpi --title=epmgpi --class=epmgpi"
-
-clean_up_tmp() {
-  rm -fr "$EPMGPI_TMP"
-}
-
-EPMGPI_TMP=$(mktemp -d -t epmgpi.XXXXXXX)
-# shellcheck disable=SC2064
-trap "clean_up_tmp $EPMGPI_TMP" EXIT
-
-EPMGPI_LOG_FILE="$EPMGPI_TMP/epmgpi.log"
-
-touch "$EPMGPI_LOG_FILE"
-
-epmgpi_logging() {
-    tee -a "$EPMGPI_LOG_FILE"
-}
-
-ntf() {
-    notify-send --icon=epmgpi "$1"
-}
-
-
-# Уведомление об ошибке
-ntf_error() {
-    notify-send  --icon=error "$1"
+respondent_logging() {
+    tee -a "$1"
 }
 
-epmgpi_answer() {
-while true; do
-    last_line=$(tail -n 1 "$EPMGPI_LOG_FILE")
-    if [[ $last_line == *"[Y/n]"* ]]; then
-        # Действия, которые нужно выполнить, если найдена строка с [Y/n]
-            yad --image="dialog-question" --text "$last_line" \
-                --button="yad-yes:0" \
-                --button="yad-no:1"
-            ANSWER=$?
+respondent_answer() {
+    local RESPONDENT_LOG_FILE=$1
+    local YAD_DEFAULT="/usr/bin/yad --window-icon=$2 --title=$3 --class=$2"
     
+    while true; do
+        local LAST_LINE
+        LAST_LINE=$(tail -n 1 "$RESPONDENT_LOG_FILE")
+        
+        if [[ ${LAST_LINE,,} == *"[y/n]"* || ${LAST_LINE,,} == *"[n/y]"* || ${LAST_LINE,,} == *"[Рґ/РЅ]"* || ${LAST_LINE,,} == *"[РЅ/Рґ]"* ]]; then
+            $YAD_DEFAULT --image="dialog-question" --text "$LAST_LINE" \
+                    --button="yad-yes:0" \
+                    --button="yad-no:1"
+            local ANSWER=$?
+        
             if [ $ANSWER -eq 0 ]; then
                 echo "y"
             elif [ $ANSWER -eq 1 ]; then
                 echo "n"
             fi
-    fi
 
-    if [[ $last_line == *"EXIT"* ]]; then
-        # Если в тексте найдено слово "EXIT", останавливаем цикл
-        break
-    fi
+            printf "\nrespondent replied\n" >> "$RESPONDENT_LOG_FILE"
+        fi
+        if [[ $LAST_LINE == *"RESPONDENT_EXIT"* ]]; then
+            break
+        fi
     sleep 1
 done
 }
 
-epmgpi_answer | (
-    /usr/bin/pkexec /usr/bin/epm full-upgrade 2>&1
-        exit_code=$?
+ximper_respondent() {
+    local COMMAND="$1"
+    local RESPONDENT_LOG_FILE="${2}_respondent.log"
+    rm -fr "$RESPONDENT_LOG_FILE"
+    touch "$RESPONDENT_LOG_FILE"
 
-        case $exit_code in
+    respondent_answer "$RESPONDENT_LOG_FILE" "$3"| (
+        script -q -a -f "/dev/null" -c "$COMMAND" --echo always
+        case $? in
             0)
-                echo "Команда завершилась успешно"
-                ntf "Пакет установлен!"
-                echo "EXIT" > "$EPMGPI_LOG_FILE"
-
+                echo "Команда завершилась успешно."
                 ;;
             100)
-                ntf_error "Пакет не установлен. Команда завершилась с ошибкой."
-                echo "EXIT" > "$EPMGPI_LOG_FILE"
+                echo "Команда завершилась с ошибкой."
                 ;;
-
             126)
-                ntf_error "Пакет не установлен. Действие прервано пользователем."
-                echo "EXIT" > "$EPMGPI_LOG_FILE"
+                echo "Действие прервано пользователем."
+                ;;
+            1)
+                echo "Команда завершилась с ошибкой."
                 ;;
             *)
-                ntf_error "Пакет не установлен."
-                echo "EXIT" > "$EPMGPI_LOG_FILE"
                 ;;
-        esac
-    ) | epmgpi_logging | sed -u 's/^/# /' | $YAD_DEFAULT \
-    --title="Установка пакета" \
-    --progress --width=800 --height=500 \
-    --enable-log="Лог" --log-expanded --log-on-top --auto-kill --auto-close
\ No newline at end of file
+            esac
+    echo "RESPONDENT_EXIT"
+        ) | respondent_logging "$RESPONDENT_LOG_FILE"
+}
\ No newline at end of file
-- 
2.24.1