github.com/cosmos/cosmos-sdk@v0.50.10/scripts/protoc-swagger-gen.sh (about) 1 #!/usr/bin/env bash 2 3 set -eo pipefail 4 5 mkdir -p ./tmp-swagger-gen 6 cd proto 7 proto_dirs=$(find ./cosmos -path -prune -o -name '*.proto' -print0 | xargs -0 -n1 dirname | sort | uniq) 8 for dir in $proto_dirs; do 9 # generate swagger files (filter query files) 10 query_file=$(find "${dir}" -maxdepth 1 \( -name 'query.proto' -o -name 'service.proto' \)) 11 if [[ ! -z "$query_file" ]]; then 12 buf generate --template buf.gen.swagger.yaml $query_file 13 fi 14 done 15 16 cd .. 17 # combine swagger files 18 # uses nodejs package `swagger-combine`. 19 # all the individual swagger files need to be configured in `config.json` for merging 20 swagger-combine ./client/docs/config.json -o ./client/docs/swagger-ui/swagger.yaml -f yaml --continueOnConflictingPaths true --includeDefinitions true 21 22 # clean swagger files 23 rm -rf ./tmp-swagger-gen