forked from dotnet/coreclr
-
Notifications
You must be signed in to change notification settings - Fork 1
/
clean.cmd
105 lines (89 loc) · 2.07 KB
/
clean.cmd
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
@if not defined __echo @echo off
setlocal EnableDelayedExpansion
echo Running clean.cmd
set bin=false
set packages=false
set tools = false
if [%1]==[] (
set bin=true
set packages=true
set tools=true
goto Begin
)
:Loop
if [%1]==[] goto Begin
if /I [%1] == [/?] goto Usage
if /I [%1] == [/help] goto Usage
if /I [%1] == [/p] (
set packages=true
set thisArgs=!thisArgs!%1
goto Next
)
if /I [%1] == [/b] (
set bin=true
set thisArgs=!thisArgs!%1
goto Next
)
if /I [%1] == [/t] (
set tools=true
set thisArgs=!thisArgs!%1
goto Next
)
if /I [%1] == [/all] (
set tools=true
set bin=true
set packages=true
goto Begin
)
:Next
shift /1
goto Loop
:Begin
:: Set __ProjectDir to be the directory of this script
set "__ProjectDir=%~dp0"
:: remove trailing slash
if %__ProjectDir:~-1%==\ set "__ProjectDir=%__ProjectDir:~0,-1%"
set "__RootBinDir=%__ProjectDir%\bin"
if [%bin%] == [true] (
if exist "%__RootBinDir%" (
echo Deleting bin directory
rd /s /q "%__RootBinDir%"
if NOT [!ERRORLEVEL!]==[0] (
echo ERROR: An error occurred while deleting the bin directory - error code is !ERRORLEVEL!
exit /b 1
)
)
)
if [%tools%] == [true] (
if exist "%__ProjectDir%\Tools" (
echo Deleting tools directory
rd /s /q "%__ProjectDir%\Tools"
if NOT [!ERRORLEVEL!]==[0] (
echo ERROR: An error occurred while deleting the Tools directory - error code is !ERRORLEVEL!
exit /b 1
)
)
)
if [%packages%] == [true] (
if exist "%__ProjectDir%\packages" (
echo Deleting packages directory
rd /s /q "%__ProjectDir%\packages"
if NOT [!ERRORLEVEL!]==[0] (
echo ERROR: An error occurred while deleting the packages directory - error code is !ERRORLEVEL!
exit /b 1
)
)
)
echo Clean was successful
exit /b 0
:Usage
echo.
echo Repository cleaning script.
echo Options:
echo /b - Cleans the bin directory
echo /p - Cleans the packages directory
echo /t - Cleans the tools directory
echo /all - Cleans everything
echo.
echo If no option is specified then clean.cmd /b /p /t is implied.
exit /b