#!/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