You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
2.5 KiB
Makefile

# Custom configuration | 独立配置
# Service name | 项目名称
SERVICE=core
FILE_SERVICE=file
TEMPLATE_REMOTE=https://git.noahlan.cn/noahlan/goctls-template.git
TEMPLATE_BRANCH=v1.5.17
TEMPLATE_HOME=./doc
# The project version, if you don't use git, you should set it manually | 项目版本如果不使用git请手动设置
# VERSION=$(shell git describe --tags --always)
VERSION=1.0.0
# The project file name style | 项目文件命名风格
PROJECT_STYLE=go_zero
# Whether to use i18n | 是否启用 i18n
PROJECT_I18N=false
# Swagger type, support yml,json | Swagger 文件类型支持yml,json
SWAGGER_TYPE := yml
# Ent enabled features | Ent 启用的官方特性
ENT_FEATURE=sql/execquery,sql/modifier,sql/upsert,intercept
# ---- You may not need to modify the codes below | 下面的代码大概率不需要更改 ----
GO ?= go
GOFMT ?= gofmt "-s"
GOFILES := $(shell find . -name "*.go")
LDFLAGS := -s -w
# Generate
.PHONY: gen-api
gen-api: # Generate API files | 生成 API 的代码
goctls api go --api ./api/desc/all.api \
--dir ./api \
--trans_err=true \
--remote $(TEMPLATE_REMOTE)
swagger generate spec --output=./n-admin-server.$(SWAGGER_TYPE) --scan-models
@echo "Generate API files successfully"
.PHONY: gen-rpc
gen-rpc: # Generate RPC files from proto | 生成 RPC 的代码
goctls rpc protoc ./rpc/$(SERVICE)/$(SERVICE).proto \
--style=$(PROJECT_STYLE) \
--go_out=./rpc/$(SERVICE)/types \
--go-grpc_out=./rpc/$(SERVICE)/types \
--zrpc_out=./rpc/$(SERVICE) \
--remote $(TEMPLATE_REMOTE) \
--branch $(TEMPLATE_BRANCH)
@echo "Generate RPC files successfully"
.PHONY: gen-rpc-file
gen-rpc-file: # Generate RPC files from proto | 生成 RPC 的代码
goctls rpc protoc ./rpc/$(FILE_SERVICE)/$(FILE_SERVICE).proto \
--style=$(PROJECT_STYLE) \
--go_out=./rpc/$(FILE_SERVICE)/types \
--go-grpc_out=./rpc/$(FILE_SERVICE)/types \
--zrpc_out=./rpc/$(FILE_SERVICE) \
--remote $(TEMPLATE_REMOTE) \
--branch $(TEMPLATE_BRANCH)
@echo "Generate RPC files successfully"
.PHONY: gen-ent
gen-ent: # Generate Ent codes | 生成 Ent 的代码
go run -mod=mod entgo.io/ent/cmd/ent generate \
--feature $(ENT_FEATURE) \
--template glob="./doc/ent/template/*.tmpl" \
./rpc/$(SERVICE)/ent/schema
@echo "Generate Ent files successfully"
.PHONY: serve-swagger
serve-swagger: # Run the swagger server | 运行 swagger 服务 # lsof -i:36666 | awk 'NR!=1 {print $2}' | xargs killall -9 || true
swagger serve -F=swagger --host 0.0.0.0 --port 39999 n-admin-server.yml
@echo "Serve swagger-ui successfully"