59 lines
1.7 KiB
Batchfile
59 lines
1.7 KiB
Batchfile
@echo off
|
|
chcp 65001 >nul
|
|
setlocal enabledelayedexpansion
|
|
set "REPO_URL=https://git.diggerwf.cloud/diggerwf/Brokkoli-Giess-Plannung-Helfer.git"
|
|
set "BRANCH=main"
|
|
set "ORIGIN=origin"
|
|
set "REPO_DIR=%~dp0"
|
|
set "START_FILE=start4.bat"
|
|
set "SELF_NAME=update.bat"
|
|
set "TEMP_NAME=temp_updater.bat"
|
|
set "SKIP_PARAMS=-e config.json -e settings.txt -e db_config.ini -e logs/ -e saves/ -e __pycache__"
|
|
cd /d "%REPO_DIR%"
|
|
if "%~nx0"=="%TEMP_NAME%" (
|
|
echo Update-Modus aktiv...
|
|
timeout /t 2 >nul
|
|
git fetch %ORIGIN% %BRANCH% --quiet
|
|
git reset --hard %ORIGIN%/%BRANCH% --quiet
|
|
git clean -fd %SKIP_PARAMS% >nul
|
|
call "%SELF_NAME%"
|
|
pause
|
|
exit /b
|
|
)
|
|
if exist "%TEMP_NAME%" del /f /q "%TEMP_NAME%"
|
|
echo Pruefe auf Updates...
|
|
git --version >nul 2>&1
|
|
if %errorlevel% neq 0 (
|
|
echo Git nicht gefunden!
|
|
pause
|
|
exit /b
|
|
)
|
|
if exist ".git\" (
|
|
git remote set-url %ORIGIN% "%REPO_URL%"
|
|
git fetch %ORIGIN% %BRANCH% || (echo Fehler: Server nicht erreichbar & pause & exit /b)
|
|
for /f "tokens=*" %%a in ('git rev-parse HEAD') do set "LOCAL_HASH=%%a"
|
|
for /f "tokens=1" %%a in ('git ls-remote %ORIGIN% %BRANCH%') do set "REMOTE_HASH=%%a"
|
|
echo Lokal: !LOCAL_HASH:~0,7!
|
|
echo Online: !REMOTE_HASH:~0,7!
|
|
if "!LOCAL_HASH!" neq "!REMOTE_HASH!" (
|
|
echo Update verfuegbar...
|
|
copy /y "%SELF_NAME%" "%TEMP_NAME%" >nul
|
|
call "%TEMP_NAME%"
|
|
exit /b
|
|
) else (
|
|
echo Alles aktuell.
|
|
)
|
|
) else (
|
|
echo Ersteinrichtung...
|
|
git init --quiet
|
|
git remote add %ORIGIN% "%REPO_URL%"
|
|
git fetch --all
|
|
git reset --hard %ORIGIN%/%BRANCH%
|
|
git clean -fd %SKIP_PARAMS%
|
|
)
|
|
if exist "%START_FILE%" (
|
|
call "%START_FILE%"
|
|
) else (
|
|
echo Fehler: %START_FILE% nicht gefunden!
|
|
pause
|
|
) |