Project 'ximper/ximper-workroom' was moved to 'ximperlinux/ximper-workroom'. Please update any links and bookmarks that may still have the old path.
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"
respondent_logging() {
tee -a "$1"
}
ntf() {
notify-send --icon=epmgpi "$1"
}
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")
# Уведомление об ошибке
ntf_error() {
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" \
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"
ANSWER=$?
local ANSWER=$?
if [ $ANSWER -eq 0 ]; then
echo "y"
elif [ $ANSWER -eq 1 ]; then
echo "n"
fi
fi
if [[ $last_line == *"EXIT"* ]]; then
# Если в тексте найдено слово "EXIT", останавливаем цикл
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
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