diff options
author | Jacek Blaszczynski <biosciencenow@outlook.com> | 2017-11-08 15:11:18 +0100 |
---|---|---|
committer | Jacek Blaszczynski <biosciencenow@outlook.com> | 2017-11-08 15:11:18 +0100 |
commit | 8110e41350f33cee45e3a20725cce997b4892452 (patch) | |
tree | d0db75b7a980ef1d28b2fddb621bcc612a73f2ab /clean.cmd | |
parent | 37a0e349970b1a1710b9067398124dd42691a3e8 (diff) | |
download | coreclr-8110e41350f33cee45e3a20725cce997b4892452.tar.gz coreclr-8110e41350f33cee45e3a20725cce997b4892452.tar.bz2 coreclr-8110e41350f33cee45e3a20725cce997b4892452.zip |
Refactor clean.cmd based on corefx implementation
clean.cmd supports removal of bin dir, repo-local nuget packeges
directory and user-local nuget packages directory. In addition it
is possible to clean repo using git clean -xdf command by passing
-all command line switch to clean.cmd. In addition logic supporting
killing of VBCScompiler.exe process is added
Diffstat (limited to 'clean.cmd')
-rw-r--r-- | clean.cmd | 109 |
1 files changed, 14 insertions, 95 deletions
@@ -1,111 +1,30 @@ @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 - set all=false - 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 - set all=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" - -:: Check if VBCSCompiler.exe is running and stop it +:: 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 ) -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 - ) - ) -) - -if [%all%] == [true] ( +:: 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 +set NO_DASHES_ARG=%1 +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! ) -echo Clean was successful -exit /b 0 +:no_args +if [%1]==[] set __args=-b +call %~dp0run.cmd clean %__args% %* +exit /b %ERRORLEVEL% :Usage echo. @@ -113,8 +32,8 @@ 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 -c - Deletes the user-local nuget package cache. echo -all - Cleans everything and restores repository to pristine state echo. -echo If no option is specified then clean.cmd -b -p -t is implied. +echo If no option is specified then clean.cmd -b is implied. exit /b
\ No newline at end of file |