Commit 4e69753c authored by Roman Alifanov's avatar Roman Alifanov

Initial commit

parents
#!/bin/bash
if [ $(id -u) -eq 0 ]; then
echo "Нельзя запускать epmgpi от пользователя 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"
}
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=$?
if [ $ANSWER -eq 0 ]; then
echo "y"
elif [ $ANSWER -eq 1 ]; then
echo "n"
fi
fi
if [[ $last_line == *"EXIT"* ]]; then
# Если в тексте найдено слово "EXIT", останавливаем цикл
break
fi
sleep 1
done
}
epmgpi_answer | (
/usr/bin/pkexec /usr/bin/epm full-upgrade 2>&1
exit_code=$?
case $exit_code in
0)
echo "Команда завершилась успешно"
ntf "Пакет установлен!"
echo "EXIT" > "$EPMGPI_LOG_FILE"
;;
100)
ntf_error "Пакет не установлен. Команда завершилась с ошибкой."
echo "EXIT" > "$EPMGPI_LOG_FILE"
;;
126)
ntf_error "Пакет не установлен. Действие прервано пользователем."
echo "EXIT" > "$EPMGPI_LOG_FILE"
;;
*)
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
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