schema.sh 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #!/bin/bash
  2. set -e
  3. export PROTOBUF_ROOT=$HOME/.local
  4. export WORKSPACE=$PWD
  5. # -----------------------------------------------------------------------------
  6. function generate_grpc_by_lang() {
  7. local target=$WORKSPACE/$1
  8. echo "generate code for $1"
  9. if [ -d $target ]
  10. then
  11. rm -r $target
  12. fi
  13. mkdir -p $target
  14. $PROTOBUF_ROOT/bin/protoc -I $WORKSPACE/../protocols \
  15. -I $PROTOBUF_ROOT/include/google/protobuf \
  16. --${1}_out=$target --grpc_out=$target \
  17. --plugin=protoc-gen-grpc=$PROTOBUF_ROOT/bin/grpc_${1}_plugin \
  18. $WORKSPACE/../protocols/*.proto
  19. }
  20. function generate_grpc_for_php() {
  21. local target=$WORKSPACE/php
  22. echo "generate code for php"
  23. local -a folders=(
  24. "GPBMetadata"
  25. "Mint"
  26. )
  27. for f in "${folders[@]}"
  28. do
  29. if [ -d $target/$f ]
  30. then
  31. rm -r $target/$f
  32. fi
  33. done
  34. mkdir -p $target
  35. $PROTOBUF_ROOT/bin/protoc -I $WORKSPACE/../protocols \
  36. -I $PROTOBUF_ROOT/include/google/protobuf \
  37. --php_out=$target --grpc_out=generate_server:$target \
  38. --plugin=protoc-gen-grpc=$PROTOBUF_ROOT/bin/grpc_php_plugin \
  39. $WORKSPACE/../protocols/*.proto
  40. }
  41. # -----------------------------------------------------------------------------
  42. declare -a languages=(
  43. "cpp"
  44. "python"
  45. "ruby"
  46. "csharp"
  47. "java"
  48. )
  49. for l in "${languages[@]}"
  50. do
  51. generate_grpc_by_lang $l
  52. done
  53. generate_grpc_for_php
  54. # -----------------------------------------------------------------------------
  55. echo 'done.'
  56. exit 0