#!/bin/sh

# Выясняем, не установлен ли браузер с сайта. При нахождении прерываем скрипт.
[ -t 0 ] && rpm -q yandex-browser &>/dev/null && echo "Уже установлен другой пакет yandex-browser. Удалите его и запустите yandex-browser-install ещё раз." && exit
rpm -q yandex-browser &>/dev/null && zenity --info --text="Уже установлен другой пакет yandex-browser. Удалите его и запустите yandex-browser-install ещё раз." && exit

# Команда установки или переустановки для терминала.
if [ -t 0 ]; then dnf rei -y get-yandex-browser || dnf up -y get-yandex-browser || dnf in -y get-yandex-browser || echo "Попытки установки и переустановки не удались."; exit; fi

(
echo "10"
echo "# Обновление информации"
#
# Выясняем, установлен ли этот браузер.
rpm -q get-yandex-browser &>/dev/null && KEYIN=1 || KEYIN=0
# Обновляем метадату.
dnf refresh -q || KEY=1
# Выясняем, существует ли пакет установки браузера.
[[ $KEY = 1 ]] || (dnf rei --assumeno get-yandex-browser 2>/dev/null |grep -q "==" || dnf up --assumeno get-yandex-browser 2>/dev/null |grep -q "==" || dnf in --assumeno get-yandex-browser 2>/dev/null |grep -q "==") && KEY=0 || KEY=2
# Пробуем скачать пакет установки браузера, если есть.
if [[ $KEY = 0 ]]; then
	echo "30"
	echo "# Скачивание пакета поиска и установки Яндекс Браузера"
	(dnf rei -qy --downloadonly get-yandex-browser &>/dev/null || dnf up -qy --downloadonly get-yandex-browser &>/dev/null || dnf in -qy --downloadonly get-yandex-browser &>/dev/null) || KEY=3
fi
# Если получилось скачать - пробуем ставить браузер.
if [[ $KEY = 0 ]]; then
	echo "60"
	if [[ $KEYIN = 0 ]]; then
		echo "# Установка Яндекс Браузера"
	else
		echo "# Обновление Яндекс Браузера"
	fi
	(dnf rei -qy get-yandex-browser &>/dev/null || dnf up -qy get-yandex-browser &>/dev/null || dnf in -qy get-yandex-browser &>/dev/null) || KEY=4
fi
# Проверяем, установлен ли браузер.
if [[ $KEY = 0 ]]; then
	echo "90"
	if [[ $KEYIN = 0 ]]; then
		echo "# Проверка, что Яндекс Браузер установлен"
	else
		echo "# Проверка, что Яндекс Браузер обновлён"
	fi
	rpm -q get-yandex-browser &>/dev/null || KEY=5
fi
echo "100"
# Сообщаем результат.
if [[ $KEY = 0 ]]; then
	if [[ $KEYIN = 0 ]]; then
	echo "# Готово\n\nБраузер можно обновлять\nзапуском этого установщика\nпериодически на своё усмотрение"
	else
	echo "# Обновление Яндекс Браузера завершено"
	fi
fi
if [[ $KEY = 1 ]]; then
	echo "# Не удалось обновить метадату\nПроверьте связь с сервером"
fi
if [[ $KEY = 2 ]]; then
	echo "# Не удалось найти пакет установки браузера\nget-yandex-browser\nОн ещё поддерживается?"
fi
if [[ $KEY = 3 ]]; then
	echo "# Не удалось скачать пакет установки браузера\nget-yandex-browser\nПроверьте стабильность связи с сервером"
fi
if [[ $KEY = 4 ]]; then
	echo "# Не удалось установить браузер\nТребуется починка пакета get-yandex-browser"
fi
if [[ $KEY = 5 ]]; then
	echo "# Установка get-yandex-browser была прервана"
fi
) |
zenity --progress \
	--title="Установщик Яндекс Браузера" \
	--text="Установка..." \
	--percentage=0 \
	--width=280 \
	--no-cancel
