Skip to content

Commit cf6d017

Browse files
authored
[DFI-965] changed swagger generation method (#240)
1 parent 9a91bd6 commit cf6d017

3 files changed

Lines changed: 132 additions & 179 deletions

File tree

Makefile

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)