|
| 1 | +EXTENSION:= |
| 2 | +OPENAPI_GENERATOR_VERSION ?= v6.0.1 |
| 3 | +DD_API_NAME=secrets |
| 4 | +DD_API_PKGNAME=api |
| 5 | +BINARY?=host-binary |
| 6 | + |
| 7 | + |
| 8 | +STATIC_FLAGS=CGO_ENABLED=0 |
| 9 | +LDFLAGS="-s -w" |
| 10 | +GO_BUILD=$(STATIC_FLAGS) go build -trimpath -ldflags=$(LDFLAGS) |
| 11 | + |
| 12 | +INFO_COLOR = \033[0;36m |
| 13 | +NO_COLOR = \033[m |
| 14 | + |
| 15 | +.PHONY: bin |
| 16 | +bin: ## Build the binary for the current platform |
| 17 | + @echo "$(INFO_COLOR)Building...$(NO_COLOR)" |
| 18 | + $(GO_BUILD) -o bin/$(BINARY)$(EXTENSION) ./cmd |
| 19 | + |
| 20 | +lint: |
| 21 | + golangci-lint run |
| 22 | + |
| 23 | +format: |
| 24 | + go fmt ./... |
| 25 | + |
| 26 | + |
| 27 | +cross: ## Cross compile the server |
| 28 | + GOOS=linux GOARCH=amd64 $(GO_BUILD) -o dist/linux-amd64/$(BINARY) ./cmd |
| 29 | + GOOS=linux GOARCH=arm64 $(GO_BUILD) -o dist/linux-arm64/$(BINARY) ./cmd |
| 30 | + GOOS=darwin GOARCH=amd64 $(GO_BUILD) -o dist/darwin-amd64/$(BINARY) ./cmd |
| 31 | + GOOS=darwin GOARCH=arm64 $(GO_BUILD) -o dist/darwin-arm64/$(BINARY) ./cmd |
| 32 | + GOOS=windows GOARCH=amd64 $(GO_BUILD) -o dist/windows-amd64/$(BINARY).exe ./cmd |
| 33 | + GOOS=windows GOARCH=arm64 $(GO_BUILD) -o dist/windows-arm64/$(BINARY).exe ./cmd |
| 34 | + |
| 35 | +package: ## package the server binaries |
| 36 | + tar -C dist/linux-amd64 -czf dist/$(BINARY)-linux-amd64.tar.gz $(BINARY) |
| 37 | + tar -C dist/linux-arm64 -czf dist/$(BINARY)-linux-arm64.tar.gz $(BINARY) |
| 38 | + tar -C dist/darwin-amd64 -czf dist/$(BINARY)-darwin-amd64.tar.gz $(BINARY) |
| 39 | + tar -C dist/darwin-arm64 -czf dist/$(BINARY)-darwin-arm64.tar.gz $(BINARY) |
| 40 | + tar -C dist/windows-amd64 -czf dist/$(BINARY)-windows-amd64.tar.gz $(BINARY).exe |
| 41 | + tar -C dist/windows-arm64 -czf dist/$(BINARY)-windows-arm64.tar.gz $(BINARY).exe |
| 42 | + |
| 43 | +help: ## Show this help |
| 44 | + @echo Please specify a build target. The choices are: |
| 45 | + @grep -E '^[0-9a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "$(INFO_COLOR)%-30s$(NO_COLOR) %s\n", $$1, $$2}' |
| 46 | + |
| 47 | + |
| 48 | + |
| 49 | +pre-gen-clients: |
| 50 | + rm -rf ./pkg/generated/go/client/$(DD_API_NAME) |
| 51 | + |
| 52 | +gen-go-client: |
| 53 | + docker run --rm -w /local -e JAVA_OPTS='-Dlog.level=error' -v ${PWD}:/local openapitools/openapi-generator-cli:${OPENAPI_GENERATOR_VERSION} \ |
| 54 | + generate -g go -i ./api/schemas/$(DD_API_NAME).yaml \ |
| 55 | + -o ./pkg/generated/go/client/$(DD_API_NAME) \ |
| 56 | + --http-user-agent "Docker Desktop API" \ |
| 57 | + --additional-properties=packageName=$(DD_API_PKGNAME) \ |
| 58 | + --additional-properties=enumClassPrefix=true \ |
| 59 | + --additional-properties=generateInterfaces=true \ |
| 60 | + --additional-properties=isGoSubmodule=false |
| 61 | + |
| 62 | +gen-secrets-api-html: |
| 63 | + docker run --rm -w /local -e JAVA_OPTS='-Dlog.level=error' -v ${PWD}:/local openapitools/openapi-generator-cli:${OPENAPI_GENERATOR_VERSION} \ |
| 64 | + generate -g html2 -i ./api/schemas/$(DD_API_NAME).yaml \ |
| 65 | + -o ./pkg/generated/go/client/$(DD_API_NAME)/html |
| 66 | + |
| 67 | +post-gen-go-client: |
| 68 | + rm -rf \ |
| 69 | + ./pkg/generated/go/client/$(DD_API_NAME)/.gitignore \ |
| 70 | + ./pkg/generated/go/client/$(DD_API_NAME)/.openapi-generator-ignore \ |
| 71 | + ./pkg/generated/go/client/$(DD_API_NAME)/.travis.yml \ |
| 72 | + ./pkg/generated/go/client/$(DD_API_NAME)/go.* \ |
| 73 | + ./pkg/generated/go/client/$(DD_API_NAME)/git_push.sh |
| 74 | + |
| 75 | +generate: DD_API_NAME=secrets |
| 76 | +generate: DD_API_PKGNAME=secretsapi |
| 77 | +generate: pre-gen-clients gen-go-client gen-ts-client gen-secrets-api-html post-gen-go-client |
0 commit comments