FILECENTER_API_DIR := app/filecenter/api
ISSUECENTER_API_DIR := app/issuecenter/issueapi
KPICENTER_API_DIR := app/kpicenter/kpi_api
KPICENTER_RPC_DIR := app/kpicenter/kpi_rpc
USERCENTER_API_DIR := app/usercenter/api
OACENTER_API_DIR := app/oacenter/oa_api
OACENTER_RPC_DIR := app/oacenter/oa_rpc

fmtDoc:
	find .  -name "*.api" | xargs goctl api format -dir .
fmtCode:
	goimports-reviser -rm-unused -set-alias ./...
lint:
	golangci-lint run
modd:
	lsof -t -i tcp:1001 | xargs kill -9
	lsof -t -i tcp:1002 | xargs kill -9
	lsof -t -i tcp:1004 | xargs kill -9
	lsof -t -i tcp:2001 | xargs kill -9
	lsof -t -i tcp:2002 | xargs kill -9
	lsof -t -i tcp:2004 | xargs kill -9
	modd -f modd.conf

filecenter-api:
	cd ${FILECENTER_API_DIR} && goctl api go --api=./desc/filecenter.api --dir=./

issuecenter-api:
	cd ${ISSUECENTER_API_DIR} && goctl api go --api=./desc/issue.api --dir=./

kpicenter-api:
	cd ${KPICENTER_API_DIR} && goctl api go --api=./desc/kpi_api.api --dir=./

kpicenter-rpc:
	cd ${KPICENTER_RPC_DIR} && goctl rpc protoc kpi_rpc.proto -I=. -I=${GOPATH}/protoc/include \
		--go_out=./pb --go-grpc_out=./pb --zrpc_out=./ -c

# DIR为生成的代码目录名称，SQL_FILE为sql文件名称
# 举例：make kpi-model SQL_FILE=data.sql DIR=. 
kpi-model:
	cd app/kpicenter/model && goctl model mysql ddl -src="$(SQL_FILE)" -dir="$(DIR)"

oacenter-api:
	cd ${OACENTER_API_DIR} && goctl api go --api=./oa_api.api --dir=./

oacenter-rpc:
	# 把protc安装目录复制到GOPATH中
	cd ${OACENTER_RPC_DIR} && goctl rpc protoc ./oa_rpc.proto -I=. -I=${GOPATH}/protoc/include \
	--go_out=. --go-grpc_out=. --zrpc_out=. -m

usercenter-api:
	cd ${USERCENTER_API_DIR} && goctl api go --api=./user.api --dir=./

# DIR为生成的代码目录名称，SQL_FILE为sql文件名称
# 举例：make oa-model SQL_FILE=000004_x_issue_metrics.up.sql DIR=issue 
oa-model:
	cd app/oacenter/model && goctl model mysql ddl -src="sql/$(SQL_FILE)" -dir="$(DIR)"

oa-rpc:
	cd app/oacenter/oa_rpc && goctl rpc protoc oa_rpc.proto --go_out=. --go-grpc_out=. --zrpc_out=. -m

oa-api:
	cd app/oacenter/oa_api && goctl api go -api oa_api.api -dir ./ --style=goZero