# gone 辅助工具

# 安装

执行如下命令:

go install github.com/gone-io/gone/tools/gone@latest

# 使用

# 测试是否正常安装

成功安装后,执行gone -h,建获得如下结果:

➜  demo gone -h
NAME:
   gone - A new cli application
USAGE:
   gone [global options] command [command options] [arguments...]
DESCRIPTION:
   generate gone code or generate gone app
COMMANDS:
   priest   -s ${scanPackageDir} -p ${pkgName} -f ${funcName} -o ${outputFilePath} [-w]
   mock     -f ${fromGoFile} -o ${outGoFile}
   create   [-t ${template} [-m ${modName}]] ${appName}
   help, h  Shows a list of commands or help for one command
GLOBAL OPTIONS:
   --help, -h  show help (default: false)

# 生成项目

命令格式:

gone create [-t ${template} [-m ${modName}]] ${appName}

参数说明:

  • -t: 指定模板,默认为web,支持的模板类型如下:
    • web:生成空白的web项目
    • web+mysql:生成web项目,并集成mysql
  • -m: 指定项目模块名称,默认为项目名
  • appName: 指定项目名,默认为demo

例子可以参考快速开始#Web 项目 (opens new window)

# 生成Priest函数

该命令的作用是扫描代码中的特殊注释//go:gone,生成一个Priest函数,将其标注的New函数生成的Goner注册到Gone中。

关于Priest函数、Goner的详细介绍,请参考Gone的核心概念 (opens new window)

命令格式:

gone priest -s ${scanPackageDir} -p ${pkgName} -f ${funcName} -o ${outputFilePath} [-w] [--stat]

参数说明:

  • -s: 指定扫描的包路径,不可缺省
  • -p: 指定生成代码的包名,不可缺省
  • -f: 指定生成Priest函数的名称,不可缺省
  • -o: 指定生成Priest函数的输出文件路径,不可缺省
  • -w: 监听文件变化,自动生成,默认为false
  • --stat: 输出统计信息,默认为false

例子可以参考自动生成Priest (opens new window)

# 生成Mock代码

该命令用于给工具mockgen生成的Mock代码进行处理,给mock结构体嵌入gone.Flag,使其mock生成的值为Goner

命令格式:

gone mock -f ${fromGoFile} -o ${outGoFile}

参数说明:

  • -f: 指定要处理的go文件路径,不可缺省
  • -o: 指定输出文件路径,不可缺省

支持管道符号,例如:

mockgen -package=gin -source=../cmux/interface.go -mock_names=Server=CmuxServer -|gone mock -o cumx_Server_mock_test.go

例子可以参考单元测试 (opens new window)