# Path to this plugin 

# Directory to write generated code to (.js and .d.ts files) 
OUT_DIR="./"
SOURCE_DIR="./src/proto/ultipa.proto"

# need: npm install -g grpc-tools
PROTOC_GEN_GRPC_PATH=`which grpc_tools_node_protoc_plugin`
echo "----", $PROTOC_GEN_GRPC_PATH
if [ -z "$PROTOC_GEN_GRPC_PATH" ]
    then
        echo "Need: npm install -g grpc-tools"
        exit 1
fi
PROTOC_GEN_TS_PATH="$PWD/node_modules/.bin/protoc-gen-ts"


# generate d.ts codes
protoc \
--plugin=protoc-gen-ts=${PROTOC_GEN_TS_PATH} \
--ts_out=service=grpc-node:${OUT_DIR} \
${SOURCE_DIR}

protoc \
    --plugin="protoc-gen-ts=${PROTOC_GEN_TS_PATH}" \
    --plugin=protoc-gen-grpc=${PROTOC_GEN_GRPC_PATH} \
    --js_out="import_style=commonjs,binary:${OUT_DIR}" \
    --ts_out="service=grpc-node:${OUT_DIR}" \
    --grpc_out="${OUT_DIR}" \
    ${SOURCE_DIR}


tmp_file=src/proto/.test.file

mv src/proto/ultipa_grpc_pb.js $tmp_file  
cat $tmp_file |  sed "s/require('grpc')/require('@grpc\/grpc-js')/g" > src/proto/ultipa_grpc_pb.js
rm -rf $tmp_file

mv src/proto/ultipa_grpc_pb.d.ts $tmp_file  
cat $tmp_file |  sed 's/from "grpc"/from "@grpc\/grpc-js"/g' > src/proto/ultipa_grpc_pb.d.ts
rm -rf $tmp_file
