mirror of
https://github.com/tendermint/tendermint.git
synced 2026-01-07 22:05:18 +00:00
This pull request updates the `protocgen.sh` script to insert the `go_package` option to all of the downloaded proto files. A related pull request into the spec repo removes this options from the .proto files: https://github.com/tendermint/spec/pull/358 This pull requests, along with the related spec PR, aim to move the creation of the `tendermintdev/docker-build-proto` container into the spec repo. This change also relies on several fixes to that container that are made in the PR into the spec repo.
24 lines
988 B
Bash
Executable File
24 lines
988 B
Bash
Executable File
#!/usr/bin/sh
|
|
set -eo pipefail
|
|
|
|
# This script appends the "option go_package" proto option to the file located at $FNAME.
|
|
# This option specifies what the package will be named when imported by other packages.
|
|
# This option is not directly included in the proto files to allow the files to more easily
|
|
# be hosted in github.com/tendermint/spec and shared between other repos.
|
|
# If the option is already specified in the file, it will be replaced using the
|
|
# arguments passed to this script.
|
|
|
|
FNAME="${1:?missing required .proto filename}"
|
|
MODNAME=$(echo $2| sed 's/\//\\\//g')
|
|
PACKAGE="$(dirname $FNAME | sed 's/^\.\/\(.*\)/\1/g' | sed 's/\//\\\//g')"
|
|
if [[ ! -z "$3" ]]; then
|
|
PACKAGE="$(echo $3 | sed 's/\//\\\//g')"
|
|
fi
|
|
|
|
|
|
if ! grep -q 'option\s\+go_package\s\+=\s\+.*;' $FNAME; then
|
|
sed -i "s/\(package tendermint.*\)/\1\n\noption go_package = \"$MODNAME\/$PACKAGE\";/g" $FNAME
|
|
else
|
|
sed -i "s/option\s\+go_package\s\+=\s\+.*;/option go_package = \"$MODNAME\/$PACKAGE\";/g" $FNAME
|
|
fi
|