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 #!/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() {
notify-send --icon=epmgpi "$1"
}
# Уведомление об ошибке
ntf_error() {
notify-send --icon=error "$1"
} }
epmgpi_answer() { respondent_answer() {
while true; do local RESPONDENT_LOG_FILE=$1
last_line=$(tail -n 1 "$EPMGPI_LOG_FILE") local YAD_DEFAULT="/usr/bin/yad --window-icon=$2 --title=$3 --class=$2"
if [[ $last_line == *"[Y/n]"* ]]; then
# Действия, которые нужно выполнить, если найдена строка с [Y/n]
yad --image="dialog-question" --text "$last_line" \
--button="yad-yes:0" \
--button="yad-no:1"
ANSWER=$?
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 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
break if [[ $LAST_LINE == *"RESPONDENT_EXIT"* ]]; then
fi break
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