Files
2025-09-29 00:52:08 +02:00

246 lines
7.1 KiB
Batchfile
Executable File

@echo off
if "%SYNC_PLATFORM%" == "" (
echo Please specify SYNC_PLATFORM [x64, ps4, xboxone].
goto end
)
if "%SYNC_TITLE%" == "gta5_liberty" (
set SYNC_TITLE=gta5
set UPDATE_DEPOT_ROOT=//gta5_liberty/
)
if "%SYNC_TITLE%" == "gta5" (
set DEPOT_ROOT=//depot/gta5/
goto Start
)
if "%SYNC_TITLE%" == "rdr3" (
set DEPOT_ROOT=//rdr3/
goto Start
)
echo Please set SYNC_TITLE to the title [gta5 or rdr3].
goto end
:Start
if "%LATEST_CL_FILE%" == "" (
echo Please specify your latest CL file as LATEST_CL_FILE
goto end
)
if "%LOG_DIR%" == "" (
echo No LOG_DIR set for remote logs. Please specify LOG_DIR as a remote path. Defaulting to local
set LOG_DIR=X:\
)
set LOG_FILE=%LOG_DIR%%USERNAME%_proxy_sync.log
set LOCAL_ERROR_LOG=%TEMP%\p4grab.log
rem Delete the previous logfile
touch %LOCAL_ERROR_LOG%
del /q /f %LOCAL_ERROR_LOG%
rem Grab latest CL
IF NOT EXIST "%LATEST_CL_FILE%" (
echo !!!%LATEST_CL_FILE% doesn't exist - something broke, or your network is down.
GOTO End
)
FOR /F %%i in (%LATEST_CL_FILE%) DO (
SET LAST_CL=%%i
)
if "%LAST_CL%" == "" (
echo An error occurred while trying to grab the latest CL. Please contact IT and Krehan.
goto End
)
if "%LAST_CL%" == "@ECHO OFF" (
echo There's a temporary error on the server side. This will resolve in a few minutes, please try again then. Contact IT if this problem persists.
goto End
)
if "%LAST_CL%" == "ECHO is OFF." (
echo There's a temporary error on the server side. This will resolve in a few minutes, please try again then. Contact IT if this problem persists.
goto End
)
set LABEL_SUFFIX=@%LAST_CL%
set CODE_LABEL_SUFFIX=%LABEL_SUFFIX%
if "%SYNC_HEAD_ON_CODE%" == "1" (
set CODE_LABEL_SUFFIX=
)
echo >>%LOG_FILE% %DATE% %TIME% Getting latest code, CL %LAST_CL%
if "%SYNC_RESET_SYSTRAYRFS%" == "1" (
echo Resetting SysTrayRFS...
X:\%SYNC_TITLE%\tools_ng\bin\sysTrayRfs.exe -reset
)
if "%SYNC_LEVELS_FOLDER_ONLY%" == "1" (
for %%A IN (%SYNC_PLATFORM%) DO (
title Syncing LEVEL assets for %%A
echo Syncing %%A LEVELS FOLDER ONLY to CL %LAST_CL%...
p4 sync %DEPOT_ROOT%build/dev_ng/%%A/levels/...%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
)
msg %USERNAME% You now have latest LEVEL assets as of CL %LAST_CL%. Congratulations.
goto End
)
if "%SYNC_SKIP_CODE%" == "1" (
echo >>%LOG_FILE% %DATE% %TIME% Skipping code
goto CodeDone
)
echo >>%LOG_FILE% %DATE% %TIME% Getting latest code, CL %LAST_CL%
echo Syncing code to CL %LAST_CL%...
title Syncing Code....
x:
pushd \%SYNC_TITLE%\src\dev_ng\rage
p4 sync //rage/%SYNC_TITLE%/...%CODE_LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
if "%SYNC_RESOLVE%" == "1" (
p4 resolve -am //rage/%SYNC_TITLE%/... 2>>"%LOCAL_ERROR_LOG%"
)
popd
pushd \%SYNC_TITLE%
p4 sync %DEPOT_ROOT%src/...%CODE_LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
p4 sync %DEPOT_ROOT%tools_ng/...%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
p4 sync %DEPOT_ROOT%xlast/...%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
if "%SYNC_RESOLVE%" == "1" (
p4 resolve -am %DEPOT_ROOT%src/... 2>>"%LOCAL_ERROR_LOG%"
)
popd
if "%SYNC_REBUILD_PARSER%" == "1" (
pushd \%SYNC_TITLE%\src\dev_ng
if "%SYNC_TITLE%" == "gta5" (
echo Invoking parser file builder for GTA5
start %RS_TOOLSROOT%\script\coding\buildparser.bat
) else (
echo Invoking parser file rebuilder...
start %RS_TOOLSROOT%\script\coding\rebuild_parser_files.rb
)
)
pushd x:\%SYNC_TITLE%\src\dev_ng\game
p4 sync //ps3sdk/... 2>>"%LOCAL_ERROR_LOG%"
:CodeDone
if "%SYNC_SKIP_ASSETS%" == "1" (
echo >>%LOG_FILE% %DATE% %TIME% Skipping assets
goto AssetsDone
)
echo >>%LOG_FILE% %DATE% %TIME% Getting latest assets, CL %LAST_CL%
echo Syncing assets to CL %LAST_CL%
title CODE IS UP-TO-DATE - Start compiling! Grabbing assets now...
if "%SYNC_SCRIPTS%" == "1" (
p4 sync %DEPOT_ROOT%script/...%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
title SCRIPTS ARE UP-TO-DATE - Grabbing build now...
)
if "%SYNC_DISKIMAGES%" == "1" (
p4 sync %DEPOT_ROOT%build/disk_images/...%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
)
p4 sync %DEPOT_ROOT%build/dev_ng/common/...%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
p4 sync %DEPOT_ROOT%build/dev_ng/update/common/...%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
p4 sync %DEPOT_ROOT%titleupdate/dev_ng/common/...%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
if not "%UPDATE_DEPOT_ROOT%" == "" (
p4 sync %UPDATE_DEPOT_ROOT%build/dev_ng/common/...%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
)
for %%A IN (%SYNC_PLATFORM%) DO (
echo >>%LOG_FILE% %DATE% %TIME% Syncing %%A, CL %LAST_CL%
p4 sync %DEPOT_ROOT%build/dev_ng/%%A/...%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
p4 sync %DEPOT_ROOT%build/dev_ng/update/%%A/...%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
p4 sync %DEPOT_ROOT%titleupdate/dev_ng/%%A/...%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
if not "%UPDATE_DEPOT_ROOT%" == "" (
p4 sync %UPDATE_DEPOT_ROOT%build/dev_ng/%%A/...%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
)
if %%A == "ps4" (
p4 sync %DEPOT_ROOT%build/dev_ng/sce_*/...%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
p4 sync %DEPOT_ROOT%titleupdate/dev_ng/sce_*/...%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
)
if %%A == "xboxone" (
p4 sync %DEPOT_ROOT%build/dev_ng/xbo_loose/...%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
p4 sync %DEPOT_ROOT%build/dev_ng/xbo_scripts/...%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
p4 sync %DEPOT_ROOT%titleupdate/dev_ng/xbo_loose/...%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
p4 sync %DEPOT_ROOT%titleupdate/dev_ng/xbo_scripts/...%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
)
)
:AssetsDone
if "%SYNC_EXECUTABLES%" == "1" (
title ASSETS COMPLETE - SYNCING EXECUTABLES NOW
for %%A IN (%SYNC_PLATFORM%) DO (
if %%A == "xboxone" (
p4 sync %DEPOT_ROOT%build/dev_ng/game_durango*%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
p4 sync %DEPOT_ROOT%titleupdate/dev_ng/game_durango*%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
)
if %%A == "ps4" (
p4 sync %DEPOT_ROOT%build/dev_ng/game_orbis*%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
p4 sync %DEPOT_ROOT%titleupdate/dev_ng/game_orbis*%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
)
if %%A == "x64" (
p4 sync %DEPOT_ROOT%build/dev_ng/game_win64*%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
p4 sync %DEPOT_ROOT%titleupdate/dev_ng/game_win64*%LABEL_SUFFIX% 2>>"%LOCAL_ERROR_LOG%"
)
)
)
p4 sync //3rdparty/... 2>>"%LOCAL_ERROR_LOG%"
echo >>%LOG_FILE% %DATE% %TIME% SYNC COMPLETE.
echo ALL DONE!
echo >>x:\LastSync.txt Last successful %SYNC_TITLE% sync (%SYNC_PLATFORM%) to CL %LAST_CL% on %DATE% %TIME%.
x:\%SYNC_TITLE%\tools_ng\bin\tail x:\LastSync.txt >x:\LastSync_.txt
del x:\LastSync.txt
ren x:\LastSync_.txt LastSync.txt
echo *****************************
echo MESSAGE LOG
echo *****************************
type "%LOCAL_ERROR_LOG%"
title CODE AND ASSETS UP-TO-DATE.
p4 describe -s %LAST_CL% > TEMP_CL_INFO.TXT
set CL_TIME="from Unknown Time"
FOR /F "tokens=5,6,7" %%A in (TEMP_CL_INFO.TXT) do IF "%%A" == "on" ( set CL_TIME= from %%B %%C )
msg %USERNAME% You now have latest code and assets as of CL %LAST_CL% %CL_TIME%. Congratulations. Please see the TTY for error messages that came up during the sync.
pause
popd
:End