123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- #!/bin/bash
- # Copyright 2018 Google Inc.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- set -euo pipefail
- IFS=$'\n\t'
- echo "Running update.sh"
- echo $(npm --version)
- # Variables
- PROTOS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
- WORK_DIR=`mktemp -d`
- cd ${PROTOS_DIR}
- # deletes the temp directory on exit
- function cleanup {
- rm -rf "$WORK_DIR"
- echo "Deleted temp working directory $WORK_DIR"
- }
- # register the cleanup function to be called on the EXIT signal
- trap cleanup EXIT
- # Capture location of pbjs / pbts before we pushd.
- PBJS="$(npm root)/.bin/pbjs"
- PBTS="$(npm root)/.bin/pbts"
- # Enter work dir
- pushd "$WORK_DIR"
- # Clone necessary git repos.
- git clone --depth 1 https://github.com/googleapis/googleapis.git
- # Protobuf may have breaking changes, so it will be pinned to a specific release.
- # TODO(version) nodejs-firestore should maintain the version number of protobuf manually
- git clone --single-branch --branch v26.1 --depth 1 https://github.com/google/protobuf.git
- # Copy necessary protos.
- mkdir -p "${PROTOS_DIR}/google/api"
- cp googleapis/google/api/{annotations,client,field_behavior,http,launch_stage,resource}.proto \
- "${PROTOS_DIR}/google/api/"
- mkdir -p "${PROTOS_DIR}/google/firestore/v1"
- cp googleapis/google/firestore/v1/*.proto \
- "${PROTOS_DIR}/google/firestore/v1/"
- mkdir -p "${PROTOS_DIR}/google/firestore/v1beta1"
- cp googleapis/google/firestore/v1beta1/*.proto \
- "${PROTOS_DIR}/google/firestore/v1beta1/"
- mkdir -p "${PROTOS_DIR}/google/firestore/admin/v1"
- cp googleapis/google/firestore/admin/v1/*.proto \
- "${PROTOS_DIR}/google/firestore/admin/v1/"
- mkdir -p "${PROTOS_DIR}/google/longrunning"
- cp googleapis/google/longrunning/operations.proto \
- "${PROTOS_DIR}/google/longrunning/"
- mkdir -p "${PROTOS_DIR}/google/rpc"
- cp googleapis/google/rpc/status.proto \
- "${PROTOS_DIR}/google/rpc/"
- mkdir -p "${PROTOS_DIR}/google/type"
- cp googleapis/google/type/{latlng,dayofweek}.proto \
- "${PROTOS_DIR}/google/type/"
- mkdir -p "${PROTOS_DIR}/google/protobuf"
- cp protobuf/src/google/protobuf/{any,descriptor,empty,field_mask,struct,timestamp,wrappers,duration}.proto \
- "${PROTOS_DIR}/google/protobuf/"
- popd
- # Generate the Protobuf typings
- PBJS_ARGS=( -p . \
- --js_out=import_style=commonjs,binary:library \
- --target=static-module \
- --no-create \
- --no-encode \
- --no-decode \
- --no-verify \
- --no-delimited \
- --force-enum-string)
- "${PBJS}" "${PBJS_ARGS[@]}" -o firestore_v1_proto_api.js \
- -r firestore_v1 \
- "google/firestore/v1/*.proto" \
- "firestore/*.proto" \
- "google/protobuf/*.proto" "google/type/*.proto" \
- "google/rpc/*.proto" "google/api/*.proto" \
- "google/longrunning/*.proto"
- perl -pi -e 's/number\|Long/number\|string/g' firestore_v1_proto_api.js
- "${PBTS}" -o firestore_v1_proto_api.d.ts firestore_v1_proto_api.js
- "${PBJS}" "${PBJS_ARGS[@]}" -o firestore_admin_v1_proto_api.js \
- -r firestore_admin_v1 \
- "google/firestore/admin/v1/*.proto" \
- "google/protobuf/*.proto" "google/type/*.proto" \
- "google/rpc/*.proto" "google/api/*.proto" \
- "google/longrunning/*.proto"
- perl -pi -e 's/number\|Long/number\|string/g' firestore_admin_v1_proto_api.js
- "${PBTS}" -o firestore_admin_v1_proto_api.d.ts firestore_admin_v1_proto_api.js
- "${PBJS}" "${PBJS_ARGS[@]}" -o firestore_v1beta1_proto_api.js \
- -r firestore_v1beta1 \
- "google/firestore/v1beta1/*.proto" \
- "google/protobuf/*.proto" "google/type/*.proto" \
- "google/rpc/*.proto" "google/api/*.proto" \
- "google/longrunning/*.proto"
- perl -pi -e 's/number\|Long/number\|string/g' firestore_v1beta1_proto_api.js
- "${PBTS}" -o firestore_v1beta1_proto_api.d.ts firestore_v1beta1_proto_api.js
- "${PBJS}" -p . --target=json -o v1.json \
- -r firestore_v1 \
- "google/firestore/v1/*.proto" \
- "google/protobuf/*.proto" "google/type/*.proto" \
- "google/rpc/*.proto" "google/api/*.proto"
- "${PBJS}" -p . --target=json -o admin_v1.json \
- -r firestore_admin_v1 \
- "google/firestore/admin/v1/*.proto" \
- "google/protobuf/*.proto" "google/type/*.proto" \
- "google/rpc/*.proto" "google/api/*.proto" \
- "google/longrunning/*.proto"
- "${PBJS}" -p . --target=json -o v1beta1.json \
- -r firestore_v1beta1 \
- "google/firestore/v1beta1/*.proto" \
- "google/protobuf/*.proto" "google/type/*.proto" \
- "google/rpc/*.proto" "google/api/*.proto"
- echo "Finished running update.sh"
- node ../../scripts/license.js ../../build ../protos
|