dh_ackergaul
vor 3 Tagen bb80cdf5a6157ca1f3a276e12e9faae9a4739cb7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
@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