xref: /aosp_15_r20/external/grpc-grpc-java/buildscripts/sync-protos.sh (revision e07d83d3ffcef9ecfc9f7f475418ec639ff0e5fe)
1#!/bin/bash
2set -e
3
4cd "$(dirname "$0")/.."
5
6tmpdir="$(mktemp -d)"
7curl -Ls https://github.com/grpc/grpc-proto/archive/master.tar.gz | tar xz -C "$tmpdir"
8base="$tmpdir/grpc-proto-master"
9
10# Copy protos in 'src/main/proto' from grpc-proto for these projects
11for project in alts grpclb services rls interop-testing; do
12  while read -r proto; do
13    [ -f "$base/$proto" ] && cp "$base/$proto" "$project/src/main/proto/$proto"
14    echo "$proto"
15  done < <(cd "$project/src/main/proto" && find . -name "*.proto")
16done | sort > "$tmpdir/grpc-java.lst"
17
18(cd "$base" && find . -name "*.proto") | sort > "$tmpdir/base.lst"
19echo "Files synced:"
20comm -12 "$tmpdir/grpc-java.lst" "$tmpdir/base.lst"
21
22echo
23echo "Files in grpc-proto not synced:"
24comm -13 "$tmpdir/grpc-java.lst" "$tmpdir/base.lst"
25
26echo
27echo "Files in grpc-java not synced:"
28comm -23 "$tmpdir/grpc-java.lst" "$tmpdir/base.lst"
29
30rm -r "$tmpdir"
31