@@ -64,14 +64,34 @@ swagger-ui-deps:
6464 go get -u github.com/swaggo/swag/cmd/swag@v1.6.7
6565 go get github.com/g3co/go-swagger-merger
6666
67- swagger-ui-build :
67+ swagger_auto_dir =$(swagger_dir ) "/swagger-auto"
68+ modules_dir = ./x
69+ swagger-ui-build : $(modules_dir ) /*
6870 @echo " --> Building Swagger API specificaion, merging it to Cosmos SDK"
69-
70- @echo "-> Build swagger.yaml (that takes time)"
71- swag init --dir . --output $(swagger_dir) --generalInfo ./cmd/dnode/main.go --parseDependency
72-
73- @echo "-> Merging swagger files"
74- go-swagger-merger -o ./cmd/dncli/docs/swagger.yaml $(swagger_dir)/swagger.yaml $(cosmos_dir)/client/lcd/swagger-auto/swagger.yaml
71+ @echo " -> Build swagger.yaml"
72+ rm -rf $(swagger_auto_dir )
73+ mkdir -p $(swagger_auto_dir ) /x
74+ @echo " swagger: '2.0'" > $(swagger_auto_dir ) /swagger.yaml
75+
76+ # generate swagger files for the each module
77+ # creates tmp dirs for sdk types in the each dir and removes it after work
78+ for file in $^ ; do \
79+ cp -r $(cosmos_dir)/types ./$${file}/tmp_sdk; \
80+ mkdir -p ./$${file}/tmp_auth; \
81+ cp $(cosmos_dir)/x/auth/types/stdtx.go ./$${file}/tmp_auth; \
82+ swag init --dir ./$${file} --output $(swagger_auto_dir)/$${file} --generalInfo ./module.go; \
83+ rm -rf ./$${file}/tmp_sdk ./$${file}/tmp_auth; \
84+ done
85+
86+ # merge autogenerated module swaggers
87+ for file in $(swagger_auto_dir)/x/* ; do \
88+ go-swagger-merger -o $(swagger_auto_dir)/swagger.yaml $(swagger_auto_dir)/swagger.yaml $${file}/swagger.yaml; \
89+ done
90+
91+ # merge with the cosmos-sdk swagger
92+ go-swagger-merger -o ./cmd/dncli/docs/swagger.yaml \
93+ $(cosmos_dir)/client/lcd/swagger-auto/swagger.yaml \
94+ $(swagger_auto_dir)/swagger.yaml
7595
7696 @echo "-> Building swagger.go file"
7797 echo "// Code generated by Makefile. DO NOT EDIT.\n" > ./cmd/dncli/docs/swagger.go
0 commit comments