@echo off
|
@REM ========= Setup terminal Colors =========
|
for /F %%a in ('echo prompt $E ^| cmd') do (
|
set "ESC=%%a"
|
)
|
set R=%ESC%[31m
|
set G=%ESC%[32m
|
set Y=%ESC%[33m
|
set B=%ESC%[34m
|
set M=%ESC%[35m
|
set X=%ESC%[0m
|
set FAILED=%R%failed%X%
|
set DONE=%G%done%X%
|
|
@REM ========= Settings: =========
|
|
set ROOT=%FURNPLAN_DEV%\manufacturer
|
|
@REM ========= Actual Code: =========
|
|
echo.
|
echo +++++++++++ Update +++++++++++
|
echo.
|
|
call :SvnUpdateAllManufacturers
|
goto :end
|
|
@REM ========= Function: SvnUpdateAllManufacturers ====================
|
|
:SvnUpdateAllManufacturers
|
SetLocal EnableDelayedExpansion
|
|
for /D %%F in ("%ROOT%\%1\*") do (
|
set DIR_NAME=%%~nxF
|
set FIRST_CHAR=!DIR_NAME:~0,1!
|
if !FIRST_CHAR! NEQ . (
|
if !FIRST_CHAR! NEQ _ (
|
if exist %%F\.svn_prevent_auto_update (
|
echo %Y%!DIR_NAME!%X%: %M%ignored%X%
|
) else (
|
call :SvnUpdate !DIR_NAME!
|
)
|
)
|
)
|
)
|
|
goto :eof
|
|
@REM ========= Function: SvnCleanup ====================
|
|
:SvnUpdate
|
|
echo|set /p="%Y%%1%X%: "
|
|
svn info %ROOT%\%1 > nul 2>&1
|
if ERRORLEVEL 1 (
|
echo %R%invalid svn repo%X%
|
goto :eof
|
)
|
|
TortoiseProc.exe /command:cleanup /noprogressui /nodlg /noui /cleanup /breaklocks /refreshshell /externals /fixtimestamps /vacuum /path %ROOT%\%1 > nul 2>&1
|
if ERRORLEVEL 1 (
|
echo cleanup %FAILED%
|
goto :eof
|
)
|
|
FOR /F "tokens=* USEBACKQ" %%F IN (
|
`svn info --show-item revision %ROOT%\%1`
|
) DO (
|
SET REVISION_BEFORE=%%F
|
)
|
|
svn up -q --accept postpone %ROOT%\%1 > nul 2>&1
|
if ERRORLEVEL 1 (
|
echo update %FAILED%
|
goto :eof
|
)
|
|
FOR /F "tokens=* USEBACKQ" %%F IN (
|
`svn info --show-item revision %ROOT%\%1`
|
) DO (
|
SET REVISION_AFTER=%%F
|
)
|
|
set /A "REVISION_DIFF=%REVISION_AFTER%-%REVISION_BEFORE%"
|
if "%REVISION_DIFF%" == "0" (
|
echo %B%up to date%X%
|
) else (
|
echo updated to revision %G%%REVISION_AFTER%%X% ^(%G%+%REVISION_DIFF%%X%^)
|
)
|
|
goto :eof
|
|
@REM ========= Function: GetStringLength ====================
|
|
:GetStringLength
|
set len=0
|
|
:_GetStringLengthLoop
|
if not "!%1:~%len%!"=="" set /A len+=1 & goto :_GetStringLengthLoop
|
(endlocal & set %2=%len%)
|
goto :eof
|
|
:end
|
pause
|