@echo off REM ============================================================ REM Newbury Exhibit -> Gitea uploader REM Default: HTTPS via DNS. Auto-fallback: direct LAN (bypasses nginx). REM Clean re-clone of dev, copy tree, show status, commit, push. REM ============================================================ setlocal enabledelayedexpansion set GITEA_HOST=gitea.hideawaygaming.com.au set LAN_URL=http://10.0.0.55:3000 set OWNER=jessikitty set REPO=newbury-exhibit set BRANCH=dev set SRC=%~dp0 set HTTPS_REMOTE=https://%GITEA_HOST%/%OWNER%/%REPO%.git set LAN_REMOTE=%LAN_URL%/%OWNER%/%REPO%.git echo. echo === Newbury Exhibit deploy === echo Source: %SRC% echo Target: %HTTPS_REMOTE% (branch %BRANCH%) echo Fallback: %LAN_REMOTE% echo. REM --- fresh _deploy checkout (clone via HTTPS; fall back to LAN) --- if exist "%SRC%_deploy" ( echo Removing old _deploy checkout... rmdir /s /q "%SRC%_deploy" ) echo Cloning %BRANCH% via HTTPS... git clone -b %BRANCH% "%HTTPS_REMOTE%" "%SRC%_deploy" if errorlevel 1 ( echo HTTPS clone failed, trying direct LAN... git clone -b %BRANCH% "%LAN_REMOTE%" "%SRC%_deploy" if errorlevel 1 ( echo ERROR: clone failed on both remotes. & pause & exit /b 1 ) ) REM --- auto-detect git identity from global config --- for /f "tokens=*" %%a in ('git config --global user.name') do set GITNAME=%%a for /f "tokens=*" %%a in ('git config --global user.email') do set GITEMAIL=%%a if "!GITNAME!"=="" set GITNAME=jessikitty if "!GITEMAIL!"=="" set GITEMAIL=jess.rogerson.29@outlook.com REM --- copy project files into checkout (exclude deploy/node_modules/git) --- echo Syncing files... robocopy "%SRC%." "%SRC%_deploy" /E /XD "_deploy" "node_modules" ".git" /XF "*.log" >nul pushd "%SRC%_deploy" git config user.name "!GITNAME!" git config user.email "!GITEMAIL!" REM larger buffer + HTTP/1.1 makes pushes more robust through a reverse proxy git config http.postBuffer 524288000 git config http.version HTTP/1.1 echo. echo === Staged changes === git add -A git status --short echo. set /p MSG="Commit message (blank = 'Update exhibit'): " if "!MSG!"=="" set MSG=Update exhibit git commit -m "!MSG!" if errorlevel 1 ( echo Nothing to commit, or commit failed. popd & pause & exit /b 0 ) echo. echo Pushing via HTTPS... git push origin %BRANCH% if errorlevel 1 ( echo. echo HTTPS push failed ^(proxy/500?^). Retrying direct LAN: %LAN_REMOTE% git push "%LAN_REMOTE%" %BRANCH% if errorlevel 1 ( echo. echo ERROR: push failed on both remotes. echo Your commit is saved in _deploy - you can retry manually: echo cd "%SRC%_deploy" echo git push origin %BRANCH% echo git push "%LAN_REMOTE%" %BRANCH% popd & pause & exit /b 1 ) ) echo. echo === Pushed to %BRANCH% successfully === popd pause