ECHO OFF
CLS
echo Zamknij program FD2 jezeli jest uruchomiony
pause

setlocal enabledelayedexpansion enableextensions

set FD2_REGKEY=HKEY_CURRENT_USER\Software\OpiumSoft\FinanseDomowe2\
set FD2_REGVAL=Path
set FD2_URL=https://www.finansedomowe2.pl/files/fd2.zip

reg query %FD2_REGKEY% /v %FD2_REGVAL% 2>nul || (echo Nie znaleziono informacji w rejestrze! & exit /b 1)

set FD2_PATH=
for /f "tokens=2,*" %%a in ('reg query %FD2_REGKEY% /v %FD2_REGVAL% ^| findstr %FD2_REGVAL%') do (
    set FD2_PATH=%%b
)
CLS

if not defined FD2_PATH (echo Nie znaleziono informacji w rejestrze, uruchom aplikacje FD2! & exit /b 1)
REM echo %FD2_PATH%

call :ExtractDirFromPath FD2_DIR "%FD2_PATH%"
if not defined FD2_DIR (echo Nie znaleziono informacji w rejestrze, uruchom aplikacje FD2! & exit /b 1)
REM echo %FD2_DIR%

set zip_file=%FD2_DIR%fd2.zip
REM echo %zip_file%

if exist "%zip_file%" del "%zip_file%"

echo Trwa pobieranie pliku ... prosze czekac
certutil -urlcache -split -f %FD2_URL% "%zip_file%"
echo Zakonczono pobieranie pliku

set temp_dir=%FD2_DIR%fd2_temp
if exist "%temp_dir%" RD "%temp_dir%" /S /Q
mkdir "%temp_dir%"
echo Trwa rozpakowywanie pobranego pliku
call :UnZipFile "%temp_dir%" "%zip_file%"

set temp_subdir=%temp_dir%\Finanse domowe 2\
REM echo %temp_dir%

XCOPY "%temp_subdir%*.dll" "%FD2_DIR%" /Y /Q /S /I
XCOPY "%temp_subdir%fd2.exe" "%FD2_DIR%" /Y /Q
XCOPY "%temp_subdir%baza danych.exe" "%FD2_DIR%" /Y /Q
XCOPY "%temp_subdir%Update.exe" "%FD2_DIR%" /Y /Q
XCOPY "%temp_subdir%fd2.exe.config" "%FD2_DIR%" /Y /Q
XCOPY "%temp_subdir%aktualizacja_reczna.cmd" "%FD2_DIR%" /Y /Q

if exist "%temp_dir%" RD "%temp_dir%" /S /Q
if exist "%zip_file%" del "%zip_file%"

CLS
echo Pomyslnie zakonczono aktualizacje FD2
pause

goto :EOF

:ExtractDirFromPath <resultVar> <pathVar>
(
    set "%~1=%~dp2"
    exit /b
)

:UnZipFile <ExtractTo> <zipfile>
set vbs="%temp%\_.vbs"
if exist %vbs% del /f /q %vbs%
echo Set fso = CreateObject("Scripting.FileSystemObject")>%vbs%
echo If NOT fso.FolderExists(%1) Then>>%vbs%
echo fso.CreateFolder(%1)>>%vbs%
echo End If>>%vbs%
echo set objShell = CreateObject("Shell.Application")>>%vbs%
echo set FilesInZip=objShell.NameSpace(%2).items>>%vbs%
echo objShell.NameSpace(%1).CopyHere(FilesInZip)>>%vbs%
echo Set fso = Nothing>>%vbs%
echo Set objShell = Nothing>>%vbs%
cscript //nologo %vbs%
if exist %vbs% del /f /q %vbs%

:EOF
endlocal