fix ads,passport
This commit is contained in:
52
scripts/build-proto.sh
Normal file
52
scripts/build-proto.sh
Normal file
@@ -0,0 +1,52 @@
|
||||
#!/usr/bin/env bash
|
||||
set -Eeuo pipefail
|
||||
|
||||
if [[ $# -ne 1 ]]; then
|
||||
echo "usage: $0 <module>" >&2
|
||||
echo "example: $0 passport" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
readonly SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||
readonly WORKSPACE_ROOT="$(cd -- "${SCRIPT_DIR}/.." && pwd)"
|
||||
readonly MODULE_NAME="$1"
|
||||
|
||||
mapfile -t MODULE_DIRS < <(find "${WORKSPACE_ROOT}/module" -mindepth 2 -maxdepth 2 -type d -name "${MODULE_NAME}" -print)
|
||||
if [[ ${#MODULE_DIRS[@]} -ne 1 ]]; then
|
||||
echo "error: expected one module named '${MODULE_NAME}', found ${#MODULE_DIRS[@]}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
readonly MODULE_DIR="${MODULE_DIRS[0]}"
|
||||
readonly PROTO_DIR="${MODULE_DIR}/proto"
|
||||
readonly PB_DIR="${MODULE_DIR}/pb"
|
||||
readonly MODULE_REL="${MODULE_DIR#${WORKSPACE_ROOT}/}"
|
||||
readonly DOCS_DIR="sdk/docs/${MODULE_NAME}"
|
||||
readonly DOCS_GO_DIR="sdk/docs/client/golang/${MODULE_NAME}"
|
||||
readonly DOCS_TS_DIR="sdk/docs/client/typescript/${MODULE_NAME}"
|
||||
readonly CLIENT_GO_DIR="sdk/client/golang/${MODULE_NAME}"
|
||||
readonly CLIENT_TS_DIR="sdk/client/typescript/${MODULE_NAME}"
|
||||
[[ -d "${PROTO_DIR}" ]] || { echo "error: ${PROTO_DIR} does not exist" >&2; exit 1; }
|
||||
mapfile -t PROTO_FILES < <(find "${PROTO_DIR}" -maxdepth 1 -type f -name '*.proto' -print | sort)
|
||||
(( ${#PROTO_FILES[@]} > 0 )) || { echo "error: no proto files found in ${PROTO_DIR}" >&2; exit 1; }
|
||||
|
||||
cd -- "${WORKSPACE_ROOT}"
|
||||
mkdir -p "${MODULE_REL}/pb"
|
||||
mkdir -p \
|
||||
"${DOCS_DIR}" "${DOCS_GO_DIR}" "${DOCS_TS_DIR}" \
|
||||
"${CLIENT_GO_DIR}" "${CLIENT_TS_DIR}"
|
||||
protoc \
|
||||
--proto_path="${MODULE_REL}/proto" \
|
||||
--go_out="paths=source_relative:${MODULE_REL}/pb" \
|
||||
--go_out="paths=source_relative:sdk/client/golang/${MODULE_NAME}" \
|
||||
--go-grpc_out="paths=source_relative:${MODULE_REL}/pb" \
|
||||
--go-grpc_out="paths=source_relative:sdk/client/golang/${MODULE_NAME}" \
|
||||
--grpc-gateway_out="paths=source_relative,generate_unbound_methods=true:${MODULE_REL}/pb" \
|
||||
--ts_out="sdk/client/typescript" \
|
||||
--markdown_out="paths=source_relative:${DOCS_DIR}" \
|
||||
"${MODULE_REL}/proto/"*.proto
|
||||
|
||||
(cd -- "${MODULE_REL}" && protoc \
|
||||
--proto_path=proto \
|
||||
--slc_out=./ \
|
||||
proto/*.proto)
|
||||
Reference in New Issue
Block a user