Files
newbury-exhibit/upload-to-gitea.bat
T
2026-06-28 12:55:22 +10:00

92 lines
2.7 KiB
Batchfile

@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