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
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
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