monkey/build_env/build_from_cc.bat

41 lines
1.2 KiB
Batchfile

@Echo Off
Set _Delay=10
Set _Monitor=Z:\
Set _Base=%temp%\BaselineState.dir
Set _Chck=%temp%\ChkState.dir
Set _OS=6
Set _SourceStore=C:\Code\monkey\chaos_monkey
Set _OutputName=%1
Set _BinariesOut=X:\
If "%_OutputName%"=="" Exit
Ver|Findstr /I /C:"Version 5">Nul
If %Errorlevel%==0 Set _OS=5
Echo Starting source monitor, output is %_OutputName%
:_StartMon
Call :_SetBaseline "%_Base%" "%_Monitor%"
:_MonLoop
If %_OS%==5 (Ping 127.0.0.1 -n 1 %_Delay%>Nul) Else Timeout %_Delay%>Nul
Call :_SetBaseline "%_Chck%" "%_Monitor%"
FC /A /L "%_Base%" "%_Chck%">Nul
If %ErrorLevel%==0 Goto _MonLoop
Echo Change Detected, Compiling...
rmdir /s /q "%_SourceStore%"
mkdir "%_SourceStore%"
xcopy /s /q "%_Monitor%" "%_SourceStore%"
pushd "%_SourceStore%"
cmd /c build_windows.bat
copy /y "dist\monkey.exe" "%_BinariesOut%%_OutputName%"
popd
echo Waiting for changes...
Goto :_StartMon
:::::::::::::::::::::::::::::::::::::::::::::::::::
:: Subroutine
:::::::::::::::::::::::::::::::::::::::::::::::::::
:_SetBaseline
If Exist "%temp%\tempfmstate.dir" Del "%temp%\tempfmstate.dir"
For /F "Tokens=* Delims=" %%I In ('Dir /S "%~2"') Do (
Set _Last=%%I
>>"%temp%\tempfmstate.dir" Echo.%%I
)
>"%~1" Findstr /V /C:"%_Last%" "%temp%\tempfmstate.dir"
Goto :EOF