#!/bin/bash

set -eu

fmsi=""
doforce=""

while [ -n "${1:-}" ]
do
	case "$1" in
		-f) doforce="1" ;;
		*)  fmsi="$1" ;;
	esac
	shift
done

if [ "$EUID" -eq 0 ]
then
	echo "Этот скрипт нельзя запускать от root."
	echo "Запустите его от пользователя, который будет рабоать в Компас 3D."
	exit 1
fi

export WINEPREFIX="$HOME/.wine-kompas"

echo "Скрипт настройки МОС 12 для установки в wine Компас 3D от Аскон."
echo -e 'Если настройка будет произведена правильно, то Вы увидите сообщение "\033[0;1;32mНастройка wine для Компас 3D произведена успешно!\033[0m" в самом конце.\nЕсли Вы не увидели в конце такую надпись, значит что-то пошло не так.\nПопробуйте перезагрузиться и перезапустить скрипт.'
echo ""
if [ -z $doforce ]
then
	echo "Нажмите Enter, чтобы продолжить..."
	read
fi

echo "========="
echo "Перед запуском скрипта необходимо установить все обновления ОС."
sleep 2
update_applet.helper refresh
update_applet.helper update
echo "========="
echo "Обновление прошло успешно."
echo "========="
echo "Удаляем предыдущие настройки wine..."
rm -rf "$WINEPREFIX"
echo "========="
echo "Начинаем настройку wine."
echo -e "\033[0;1;31mЭто процесс может занять очень много времени. Наберитесь терпения и дождитесь его завершения.\033[0m"
echo ""
if [ -z $doforce ]
then
	echo "Нажмите Enter, чтобы продолжить..."
	read
fi
echo "========="

if [ -n $doforce ]
then
	WINEARCH=win64 WINEDLLOVERRIDES="mscoree,mshtml=" wineboot -u
else
	WINEARCH=win64 wineboot
fi

set +e
for i in  dotnet48 d3dcompiler_47 jet40 msxml3  msxml4 msxml6 corefonts riched20 vcrun2019
do
	winetricks --force -q ${i}
done
set -e

wine64 reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v "*msxml3" /t REG_SZ /d native,builtin /f
wine64 reg add 'HKCU\SOFTWARE\Microsoft\Avalon.Graphics' /v DisableHWAcceleration /t REG_DWORD /d 1 /f
cp "$WINEPREFIX"/drive_c/windows/system32/rgb9rast_2.dll "$WINEPREFIX"/drive_c/windows/system32/rgb9rast.dll

winecfg -v win10

sleep 2
echo -e "\033[0;1;32m Настройка wine для Компас 3D произведена успешно!\033[0m"
echo "========="

echo "Приступаем к установке приложения Компас 3D"

if [ -z "$fmsi" ]
then
	echo "Необходимо указать установочный файл Компас 3D (KOMPAS_3.MSI или KOMPAS-3D_v21_Study_x64.msi или подобный)."
	if [ -z $doforce ]
	then
		echo -e "\033[0;1;32mНажмите Enter для открытия диалога выбора файла:\033[0m"
		read
	fi
	fmsi="$(kdialog --getopenfilename)"
fi

if test -f "$fmsi"
then
	wine64 "$fmsi"
	echo -e "\033[0;1;32m Компас 3D успешно установлен!\033[0m"
else
	echo "Указанного файла не существует."
fi
