summaryrefslogtreecommitdiff
path: root/clean.cmd
blob: f4150d78112514dad444543388694e651ffe4a88 (plain)
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
@if not defined _echo @echo off
setlocal EnableDelayedExpansion

set NO_DASHES_ARG=%1
if not defined NO_DASHES_ARG goto no_help
if /I [%NO_DASHES_ARG:-=%] == [?] goto Usage
if /I [%NO_DASHES_ARG:-=%] == [h] goto Usage

:no_help
:: Check if VBCSCompiler.exe is running
tasklist /fi "imagename eq VBCSCompiler.exe" |find ":" > nul
:: Compiler is running if errorlevel == 1
if errorlevel 1 (
	echo Stop VBCSCompiler.exe execution.
	for /f "tokens=2 delims=," %%F in ('tasklist /nh /fi "imagename eq VBCSCompiler.exe" /fo csv') do taskkill /f /PID %%~F
)

:: Strip all dashes off the argument and use invariant
:: compare to match as many versions of "all" that we can
:: All other argument validation happens inside Run.exe
if not defined NO_DASHES_ARG goto no_args
if /I [%NO_DASHES_ARG:-=%] == [all] (
  echo Cleaning entire working directory ...
  call git clean -xdf
  exit /b !ERRORLEVEL!
)

:no_args
if [%1]==[] set __args=/t:CleanAllProjects
if [%1]==[-b] set __args=/t:CleanAllProjects
if [%1]==[-p] set __args=/t:CleanPackages
if [%1]==[-c] set __args=/t:CleanPackagesCache
call %~dp0msbuild.cmd /nologo /verbosity:minimal /clp:Summary /nodeReuse:false /flp:v=normal;LogFile=clean.log %__args%
exit /b %ERRORLEVEL%

:Usage
echo.
echo Usage: clean [-b] [-p] [-c] [-all]
echo Repository cleaning script.
echo Options:
echo     -b     - Delete the binary output directory.
echo     -p     - Delete the repo-local NuGet package directory.
echo     -c     - Deletes the user-local NuGet package cache.
echo     -all   - Cleans repository and restores it to pristine state.
echo.
echo ^If no option is specified then "clean -b" is implied.
exit /b