rem variables

rem GRPC-TOOLS required. Install with `nuget install Grpc.Tools`. 
rem Then un-comment and replace [DIRECTORY] with location of files.
rem For example, on Windows, you might have something like:
rem set COMPILER=Grpc.Tools.1.14.1/tools/windows_x64

set SRC_DIR=proto\mlagents\envs\communicator_objects
set DST_DIR_C=..\UnitySDK\Assets\ML-Agents\Scripts\CommunicatorObjects
set DST_DIR_P=..\ml-agents
set PROTO_PATH=proto

set PYTHON_PACKAGE=mlagents\envs\communicator_objects

rem clean
rd /s /q %DST_DIR_C%
rd /s /q %DST_DIR_P%\%PYTHON_PACKAGE%
mkdir %DST_DIR_C%
mkdir %DST_DIR_P%\%PYTHON_PACKAGE%

rem generate proto objects in python and C#

for %%i in (%SRC_DIR%\*.proto) do (
    protoc --proto_path=proto --csharp_out=%DST_DIR_C% %%i
    protoc --proto_path=proto --python_out=%DST_DIR_P% %%i
)

rem grpc

set GRPC=unity_to_external.proto

%COMPILER%\protoc --proto_path=proto --csharp_out %DST_DIR_C% --grpc_out %DST_DIR_C% %SRC_DIR%\%GRPC% --plugin=protoc-gen-grpc=%COMPILER%\grpc_csharp_plugin.exe
python3 -m grpc_tools.protoc --proto_path=proto --python_out=%DST_DIR_P% --grpc_python_out=%DST_DIR_P% %SRC_DIR%\%GRPC%

rem Generate the init file for the python module
rem rm -f $DST_DIR_P/$PYTHON_PACKAGE/__init__.py
setlocal enabledelayedexpansion
for %%i in (%DST_DIR_P%\%PYTHON_PACKAGE%\*.py) do ( 
set FILE=%%~ni
rem echo from .$(basename $FILE) import * >> $DST_DIR_P/$PYTHON_PACKAGE/__init__.py
echo from .!FILE! import * >> %DST_DIR_P%\%PYTHON_PACKAGE%\__init__.py
)

