60 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Batchfile
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Batchfile
		
	
	
	
	
	
@echo off
 | 
						|
setlocal EnableDelayedExpansion
 | 
						|
 | 
						|
cd /d "%~dp0..\pb"
 | 
						|
where /q protoc || echo Missing protoc && exit /b
 | 
						|
set gen=..\gen
 | 
						|
set pbs=bdware/bdledger/api/*.proto
 | 
						|
set exec=protoc
 | 
						|
 | 
						|
for %%A in (%*) do (
 | 
						|
  if "%%A"=="-a" set exec=start /b protoc
 | 
						|
  if "%%A"=="--async" set exec=start /b protoc
 | 
						|
  if "%%A"=="go" (
 | 
						|
    set plugin=protoc-gen-go
 | 
						|
    where /q !plugin! || echo Missing !plugin! && exit /b
 | 
						|
    set vplugin=protoc-gen-govalidators
 | 
						|
    where /q !vplugin! || echo Missing !vplugin! && exit /b
 | 
						|
    set out=%gen%\go
 | 
						|
    if not exist !out! mkdir !out!
 | 
						|
    echo Generating Go code
 | 
						|
    !exec! --go-grpc_out=!out! --govalidators_out=!out! %pbs%
 | 
						|
  )
 | 
						|
  if "%%A"=="gohttp" (
 | 
						|
    set plugin=protoc-gen-grpc-gateway
 | 
						|
    where /q !plugin! || echo Missing !plugin! && exit /b
 | 
						|
    set out=%gen%\go
 | 
						|
    if not exist !out! mkdir !out!
 | 
						|
    echo Generating Go HTTP code
 | 
						|
    !exec! --grpc-gateway_out=grpc_api_configuration=bdware/bdledger/api/grpc-gateway.yml,logtostderr=true:!out! %pbs%
 | 
						|
  )
 | 
						|
  if "%%A"=="nodejs" (
 | 
						|
    set plugin=grpc_tools_node_protoc_plugin
 | 
						|
    where /q !plugin! || echo missing !plugin! && exit /b
 | 
						|
    for /f %%i in ('where !plugin!') do set pluginPath=%%i
 | 
						|
    set out=%gen%\nodejs
 | 
						|
    if not exist !out! mkdir !out!
 | 
						|
    echo Generating Node.js code
 | 
						|
    !exec! --js_out=import_style=commonjs,binary:!out! --grpc_out=!out! --plugin=protoc-gen-grpc=!pluginPath! %pbs% google/protobuf/empty.proto
 | 
						|
  )
 | 
						|
  if "%%A"=="ts" (
 | 
						|
    set plugin=protoc-gen-ts
 | 
						|
    where /q !plugin! || echo missing !plugin! && exit /B
 | 
						|
    for /f %%i in ('where !plugin!') do set pluginPath=%%i
 | 
						|
    set out=%gen%\nodejs
 | 
						|
    if not exist !out! mkdir !out!
 | 
						|
    echo Generating TypeScript definitions
 | 
						|
    !exec! --ts_out=!out! --plugin=protoc-gen-ts=!pluginPath! %pbs% google/protobuf/empty.proto
 | 
						|
  )
 | 
						|
  if "%%A"=="docs" (
 | 
						|
    set plugin=protoc-gen-ts
 | 
						|
    where /q !plugin! || echo missing !plugin! && exit /B
 | 
						|
    set out=..\..\docs
 | 
						|
    if not exist !out! mkdir !out!
 | 
						|
    echo Generating documentation
 | 
						|
    !exec! --doc_out=!out! --doc_opt=html,apis.html %pbs% google/protobuf/empty.proto
 | 
						|
    start /b protoc --doc_out=!out! --doc_opt=markdown,apis.md %pbs% google/protobuf/empty.proto
 | 
						|
    start /b protoc --doc_out=!out! --doc_opt=json,apis.json %pbs% google/protobuf/empty.proto
 | 
						|
  )
 | 
						|
)
 |