Commit 0086e125 authored by Roman Alifanov's avatar Roman Alifanov

removing the mention of epmgpi and leading to an adequate view

parent 38345bb7
#!/bin/bash #!/bin/bash
if [ $(id -u) -eq 0 ]; then if [ $(id -u) -eq 0 ]; then
echo "Нельзя запускать epmgpi от пользователя root." echo "Нельзя запускать respondent от пользователя root."
exit 1 exit 1
fi fi
YAD_DEFAULT="/usr/bin/yad --window-icon=epmgpi --title=epmgpi --class=epmgpi" respondent_logging() {
tee -a "$1"
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() { respondent_answer() {
notify-send --icon=epmgpi "$1" 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
ntf_error() { $YAD_DEFAULT --image="dialog-question" --text "$LAST_LINE" \
notify-send --icon=error "$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-yes:0" \
--button="yad-no:1" --button="yad-no:1"
ANSWER=$? local ANSWER=$?
if [ $ANSWER -eq 0 ]; then if [ $ANSWER -eq 0 ]; then
echo "y" echo "y"
elif [ $ANSWER -eq 1 ]; then elif [ $ANSWER -eq 1 ]; then
echo "n" echo "n"
fi fi
fi
if [[ $last_line == *"EXIT"* ]]; then printf "\nrespondent replied\n" >> "$RESPONDENT_LOG_FILE"
# Если в тексте найдено слово "EXIT", останавливаем цикл fi
if [[ $LAST_LINE == *"RESPONDENT_EXIT"* ]]; then
break break
fi fi
sleep 1 sleep 1
done done
} }
epmgpi_answer | ( ximper_respondent() {
/usr/bin/pkexec /usr/bin/epm full-upgrade 2>&1 local COMMAND="$1"
exit_code=$? 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) 0)
echo "Команда завершилась успешно" echo "Команда завершилась успешно."
ntf "Пакет установлен!"
echo "EXIT" > "$EPMGPI_LOG_FILE"
;; ;;
100) 100)
ntf_error "Пакет не установлен. Команда завершилась с ошибкой." echo "Команда завершилась с ошибкой."
echo "EXIT" > "$EPMGPI_LOG_FILE"
;; ;;
126) 126)
ntf_error "Пакет не установлен. Действие прервано пользователем." echo "Действие прервано пользователем."
echo "EXIT" > "$EPMGPI_LOG_FILE" ;;
1)
echo "Команда завершилась с ошибкой."
;; ;;
*) *)
ntf_error "Пакет не установлен."
echo "EXIT" > "$EPMGPI_LOG_FILE"
;; ;;
esac esac
) | epmgpi_logging | sed -u 's/^/# /' | $YAD_DEFAULT \ echo "RESPONDENT_EXIT"
--title="Установка пакета" \ ) | respondent_logging "$RESPONDENT_LOG_FILE"
--progress --width=800 --height=500 \ }
--enable-log="Лог" --log-expanded --log-on-top --auto-kill --auto-close \ No newline at end of file
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment