Files
newbury-exhibit/upload-to-gitea.bat
T
2026-07-06 19:25:57 +10:00

102 lines
3.2 KiB
Batchfile

@echo off
REM ============================================================
REM Newbury Exhibit -> Gitea uploader
REM _deploy checkout lives OUTSIDE the project (sibling folder)
REM so it can never copy into itself (no more nested copies).
REM Default HTTPS via DNS; auto-fallback to direct LAN.
REM ============================================================
setlocal enabledelayedexpansion
set GITEA_HOST=gitea.hideawaygaming.com.au
set LAN_URL=https://gitea.hideawaygaming.com.au
set OWNER=jessikitty
set REPO=newbury-exhibit
set BRANCH=dev
REM SRC = this script's folder (the project). Strip trailing backslash.
set "SRC=%~dp0"
if "%SRC:~-1%"=="\" set "SRC=%SRC:~0,-1%"
REM DEPLOY = sibling folder next to the project, NOT inside it.
for %%I in ("%SRC%\..") do set "PARENT=%%~fI"
set "DEPLOY=%PARENT%\newbury-exhibit_deploy"
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 Checkout: %DEPLOY% (sibling - outside the project)
echo Target: %HTTPS_REMOTE% (branch %BRANCH%)
echo.
REM --- ensure ghost roster is present (copy from NewburyNights if missing) ---
if not exist "%SRC%\data\ghosts.json" (
if exist "%PARENT%\NewburyNights\ghosts.enriched.json" (
echo Copying ghost roster into data\ghosts.json ...
copy /y "%PARENT%\NewburyNights\ghosts.enriched.json" "%SRC%\data\ghosts.json" >nul
)
)
REM --- fresh _deploy checkout (clone via HTTPS; fall back to LAN) ---
if exist "%DEPLOY%" (
echo Removing old checkout...
rmdir /s /q "%DEPLOY%"
)
echo Cloning %BRANCH% via HTTPS...
git clone -b %BRANCH% "%HTTPS_REMOTE%" "%DEPLOY%"
if errorlevel 1 (
echo HTTPS clone failed, trying direct LAN...
git clone -b %BRANCH% "%LAN_REMOTE%" "%DEPLOY%"
if errorlevel 1 ( echo ERROR: clone failed on both remotes. & pause & exit /b 1 )
)
REM --- 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 into checkout. Source has no _deploy inside it now, ---
REM --- but still exclude the usual noise. .git in DEPLOY is protected. ---
echo Syncing files...
robocopy "%SRC%" "%DEPLOY%" /MIR /XD "node_modules" ".git" "newbury-exhibit_deploy" "backups" /XF "*.log" ".run.pid" ".deploy-installed" >nul
pushd "%DEPLOY%"
git config user.name "!GITNAME!"
git config user.email "!GITEMAIL!"
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 HTTPS push failed ^(proxy/500?^). Retrying direct LAN...
git push "%LAN_REMOTE%" %BRANCH%
if errorlevel 1 (
echo ERROR: push failed on both remotes. Commit saved in %DEPLOY%.
popd & pause & exit /b 1
)
)
echo.
echo === Pushed to %BRANCH% successfully ===
popd
pause