GO := CGO_ENABLED=0 GOOS=$(GOOS) GOARCH=$(GOARCH) go

.PHONY: run fmt

testbed: #install-tcctl
	tcctl testbed create -f testbed.yaml -r http://rms-staging.pingcap.net:30007
	echo 'TI_PARAM_STR_compatibleVersion: release-4.0' >> .env
	echo 'TI_PARAM_STR_import_basic_opts: {"data-dir":"s3://nfs/jianxu/test-data?access-key=minioadmin&secret-access-key=minioadmin&endpoint=http%3a%2f%2fminio.pingcap.net%3a9000&force-path-style=true","backend":"local","sorted-kv-dir":"/tmp/sorted-kv-dir", "timeout":"10m","crc32-checksum":4249683857, "config": "[lightning]\ncheck-requirements = false"}' >> .env
	echo 'TI_PARAM_STR_br_opts: {"storage":"s3://tmp/br-backup-basic?access-key=minioadmin&secret-access-key=minioadmin&endpoint=http%3a%2f%2fminio.pingcap.net%3a9000&force-path-style=true","timeout":"10m","crc32-checksum":0,"database":"clustered", "backup-options": ["--check-requirements=false"], "restore-options": ["--check-requirements=false"]}' >> .env
	echo 'TI_PARAM_STR_mc_rm_opts: {"path":"qa-minio/tmp/br-backup-basic","timeout":"10m"}' >> .env
	echo 'TI_PARAM_STR_drop_databases: clustered' >> .env
	echo 'TI_PARAM_STR_expect_error_restore_from_comp_to_comp: false' >> .env
	echo 'TI_PARAM_STR_expect_error_restore_from_comp_to_cur: false' >> .env
	echo 'TI_PARAM_STR_expect_error_restore_from_cur_to_comp: true' >> .env
	echo 'TI_PARAM_STR_admin_check: []' >> .env
	echo 'TI_PARAM_STR_global_variable: []' >> .env

destroy-testbed:
	tcctl testbed delete -r http://rms-staging.pingcap.net:30007

run:
	KUBECONFIG=$(KUBECONFIG) MYSQL_PROXY=socks5://rms-staging.pingcap.net:30081 go run main.go

build:
	$(GO) build -o ./br-compatibility main.go

image:
	GOOS=linux GOARCH=amd64 make build
	docker build --platform linux/amd64 -t hub-new.pingcap.net/tools/br-compatibility .

fmt: groupimports
	go fmt ./...

groupimports: install-goimports
	goimports -w -l -local github.com/pingcap/test-infra .

install-goimports:
ifeq (, $(shell which goimports))
	@{ \
	set -e ;\
	TMP_DIR=$$(mktemp -d) ;\
	cd $$TMP_DIR ;\
	GO111MODULE=on go get golang.org/x/tools/cmd/goimports ;\
	rm -rf $$TMP_DIR ;\
	}
endif

install-testbed-cli:
	go install github.com/pingcap/test-infra/services/rms/cmd/testbed@latest

