GOPRIVATE := "github.com/tidbcloud/*"
GO := CGO_ENABLED=0 go

.PHONY: tool
tool:
	go install tool

.PHONY: buf
buf: tool
	cd proto && buf generate && cd ..

server:
	GOPRIVATE=$(GOPRIVATE) $(GO) build -o bin/server ./cmd/server

ctl:
	cd cmd/ctl && GOPRIVATE=$(GOPRIVATE) $(GO) build -o ../../bin/ctl ./

# Linux build targets
.PHONY: server-linux ctl-linux linux
server-linux:
	GOPRIVATE=$(GOPRIVATE) GOOS=linux GOARCH=amd64 $(GO) build -o bin/server-linux ./cmd/server

ctl-linux:
	cd cmd/ctl && GOPRIVATE=$(GOPRIVATE) GOOS=linux GOARCH=amd64 $(GO) build -o ../../bin/ctl-linux ./

linux: server-linux ctl-linux
	@echo "built: bin/server-linux bin/ctl-linux"

image: server ctl
	docker build -t ${IMG} .

.PHONY: ut
ut:
	go test -v ./...

.PHONY: integration-test
integration-test:
	go test -v -run TestUpdateClusterMetaIntegration ./

.PHONY: data
data:
	./gitops-data/update_data.sh

.PHONY: dict
dict:
	./gitops-data/import_dict.sh $(version)

.PHONY: dump-dict
dump-dict:
	cd dict_generator && ./generate_all.sh

.PHONY: dump-schema
dump-schema:
	./scripts/dump_schema.sh
