mirror of https://github.com/grpc/grpc-go.git
47 lines
1.2 KiB
Bash
Executable File
47 lines
1.2 KiB
Bash
Executable File
#!/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
|