gen-api.sh 966 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/bin/bash
  2. # go install github.com/deepmap/oapi-codegen/v2/cmd/oapi-codegen@latest
  3. # setup
  4. package="generated"
  5. folderPath="webserver/handlers/generated"
  6. specPath="openapi.yaml"
  7. # validate scripts are installed
  8. if ! command -v swagger-cli &>/dev/null; then
  9. echo "Please install \`swagger-cli\` before running this script"
  10. exit 1
  11. fi
  12. if ! command -v oapi-codegen &>/dev/null; then
  13. echo "Please install \`oapi-codegen\` before running this script"
  14. echo "Hint: run \`go install github.com/oapi-codegen/oapi-codegen/v2/cmd/oapi-codegen@latest\` to install"
  15. exit 1
  16. fi
  17. # validate schema
  18. swagger-cli validate $specPath
  19. if [ $? -ne 0 ]; then
  20. echo "Open API specification is not valid"
  21. exit 1
  22. fi
  23. # cleanup
  24. rm -r $folderPath
  25. mkdir -p $folderPath
  26. # codegen
  27. oapi-codegen -generate types -o $folderPath/$package-types.gen.go -package $package $specPath
  28. oapi-codegen -generate "chi-server" -o $folderPath/$package.gen.go -package $package $specPath
  29. # go
  30. go mod tidy