-
Notifications
You must be signed in to change notification settings - Fork 4.5k
/
Copy pathvet-proto.sh
executable file
·46 lines (38 loc) · 1.23 KB
/
vet-proto.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/bin/bash
set -ex # Exit on error; debugging enabled.
set -o pipefail # Fail a pipe if any sub-command fails.
# - Source them sweet sweet helpers.
source "$(dirname $0)/common.sh"
# - Check to make sure it's safe to modify the user's git repo.
git status --porcelain | fail_on_output
# - Undo any edits made by this script.
cleanup() {
git reset --hard HEAD
}
trap cleanup EXIT
# - Installs protoc into your ${GOBIN} directory, if requested.
# ($GOBIN might not be the best place for the protoc binary, but is at least
# consistent with the place where all binaries installed by scripts in this repo
# go.)
if [[ "$1" = "-install" ]]; then
if [[ "${GITHUB_ACTIONS}" = "true" ]]; then
source ./scripts/install-protoc.sh "/home/runner/go"
else
die "run protoc installer https://github.com/grpc/grpc-go/blob/master/scripts/install-protoc.sh"
fi
echo SUCCESS
exit 0
elif [[ "$#" -ne 0 ]]; then
die "Unknown argument(s): $*"
fi
for MOD_FILE in $(find . -name 'go.mod'); do
MOD_DIR=$(dirname ${MOD_FILE})
pushd ${MOD_DIR}
go generate ./...
popd
done
# - Check that generated proto files are up to date.
git status --porcelain 2>&1 | fail_on_output || \
(git status; git --no-pager diff; exit 1)
echo SUCCESS
exit 0