#!/usr/bin/env bash
# info_ru: Программа автоматизации процесса подготовки юридическими и физическими лицами документов для представления в налоговые органы в электронной форме и на бумажном носителе.
########################################################################
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export WINEPREFIX="nalog"
export PROG_NAME="Налогоплательщик ЮЛ"
export PROG_ICON="npul"
export BASE_PFX="defpfx_x86_v01"
export WINEARCH="win32"
export INSTALL_DLL="msxml3 msxml4 msxml6 corefonts wsh57 vcrun6 jet40 gdiplus"
export WH_WINDOWS_VER="10"

NPUL_FILE="${WH_TMP_DIR}/npul.html"
curl -o "$NPUL_FILE" -A "Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" "https://www.nalog.gov.ru/rn77/program/5961229/"

if [[ ! -f "$NPUL_FILE" ]] \
|| grep -q "Forbidden" "$NPUL_FILE"
then
    fatal "Страница сайта не доступна, или превышено количество запросов к странице."
fi

VER_MSI=$(grep -oP 'NalogUL\K[0-9.]+(?=\.msi)' "$NPUL_FILE" | tail -n 1)
VER_MSI_SLASH=$(grep -oP '[0-9]+\.[0-9]+/NalogUL[0-9]+\.msi' "$NPUL_FILE" | tail -n 1)
VER_EXE=$(grep -oP 'NalogUL\K[0-9.]+(?=\.exe)' "$NPUL_FILE" | tail -n 1)
VER_EXE_SLASH=$(grep -oP '[0-9]+\.[0-9]+\.[0-9]+/NalogUL[0-9]+\.exe' "$NPUL_FILE" | tail -n 1)

AUTOINSTALL_MSI="${WH_TMP_DIR}/NalogUL${VER_MSI}.msi"
AUTOINSTALL_EXE="${WH_TMP_DIR}/NalogUL${VER_EXE}.exe"

prepair_wine
if try_download "https://data.nalog.ru/files/nalul/${VER_MSI_SLASH}" "${AUTOINSTALL_MSI}" ; then
    wine_run_install "${AUTOINSTALL_MSI}" /quiet INSTALLDIR="c:\npul"
   try_remove_file "${AUTOINSTALL_MSI}"

    PRINT_INSTALLER="$(find "$DRIVE_C/npul/INPUTDOC" -name "*.msi")"
    wine_run_install "${PRINT_INSTALLER}" "/q"

    # Процедуры конвертации, индексация данных. По завершении процедур программа сама закроется. Признаком успешного завершения будет отсутствие в папке с программой файла setupmarker.ini. Если не принять процедуру, .exe файл обновления не установиться.
    wine_run_install "$DRIVE_C/npul/INPUTDOC/inputdoc.exe" go.ini
    #TODO: Сделать запуск процедуры в тихом режиме.
fi

if [[ -n "$VER_EXE" ]] \
&& try_download "https://data.nalog.ru/files/nalul/${VER_EXE_SLASH}" "${AUTOINSTALL_EXE}"
then
    wine_run_install "${AUTOINSTALL_EXE}" "/SILENT"
    try_remove_file "${AUTOINSTALL_EXE}"
else
    print_info "Дополнительных обновлений не требуется."
fi

touch "$DRIVE_C/npul/INPUTDOC/linux.txt"
WIN_FILE_EXEC="$DRIVE_C/npul/INPUTDOC/inputdoc.exe"
create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON"
try_remove_file "$NPUL_FILE"