#!/usr/bin/env bash

sedCli="sed"

if [ "$(uname)" == "Darwin" ]; then
  sedCli="gsed"
fi

protoInclude=""
if [ -n "$1" ]; then
    protoInclude="-I "$1
fi

root="$(dirname $0)/.."

# gen for p7s-api model
outDir="${root}/model"
protoRoot="${root}/proto/model"

[ ! -d ${outDir}/ ] && mkdir -p ${outDir}/
echo "===> Generating code from pb: ${protoRoot}/*.proto"
protoc ${protoInclude} -I=${protoRoot} \
  ${protoRoot}/*.proto --go_out=plugins=grpc,paths=source_relative:${outDir}

echo "===> Strip ',omitempty' in field tag for *.pb.go"
ls ${outDir}/*.pb.go | xargs -IX bash -c "${sedCli} -i 's/,omitempty/,_omitempty/' X"
ls ${outDir}/*.pb.go | xargs -IX bash -c "${sedCli} -i '/^\s*\/[\/\*]\s\{1,\}[-]/{ n; s/,_omitempty/,omitempty/; }' X"
ls ${outDir}/*.pb.go | xargs -IX bash -c "${sedCli} -i 's/,_omitempty//' X"

