DigitalData.StaffDBServer/Scripts/Core/add_ServiceExtensions.bat

61 lines
1.2 KiB
Batchfile

@echo off
setlocal disableDelayedExpansion
:Variables
set InputFile=%2
set OutputFile=%InputFile%#
set entity=%1
set "_strFind=ConfigureRepositoryWrapper(this IServiceCollection services)"
set "_strInsert1= services.AddScoped(typeof(IBaseRepository<%entity%>), typeof(%entity%Repository));"
set doreplace=0
rem if already inserted, do nothing
:Check
for /F "delims=" %%L in ('findstr /n "^" "%InputFile%"') do (
set "line=%%L"
setlocal EnableDelayedExpansion
set "line=!line:*:=!"
if "!line!" neq "" (
set "_line=!line:%_strInsert1%=!"
) else (
set _line=!line!
)
if "!_line!" neq "!line!" goto finish
endlocal
)
:Replace
>"%OutputFile%" (
for /F "delims=" %%L in ('findstr /n "^" "%InputFile%"') do (
set "line=%%L"
setlocal EnableDelayedExpansion
set "line=!line:*:=!"
if "!line!" neq "" (
set "_line=!line:%_strFind%=!"
) else (
set _line=!line!
)
if "!_line!" neq "!line!" (
echo.!line!
endlocal
set doreplace=1
) else (
echo.!line!
if !doreplace!==1 (
echo !_strInsert1!
)
endlocal
set doreplace=0
)
)
)
del %InputFile%
copy %OutputFile% %InputFile%>nul
del %OutputFile%
:finish