SuperAPI AI 工具集

cobra-modularity

编程与开发

查看项目

更新于 10-16 04:30

技能介绍

用途:帮助用 Go 的 Cobra 框架搭建可扩展、易维护的模块化 CLI 应用,核心是让每个命令模块自注册,避免在根命令中集中注册。

主要能力:设计模块化命令结构,每个命令放在独立包中并提供 Register(parent *cobra.Command) 函数;处理本地标志与持久标志、参数校验(ExactArgs、RangeArgs、MinimumNArgs、MaximumNArgs 及自定义校验);构建嵌套子命令;使用 RunE 返回错误、PreRunE/PostRun/PersistentPreRunE 钩子;支持标志依赖(MarkFlagsRequiredTogether、MarkFlagsMutuallyExclusive)、子命令分组、与 Viper 集成配置。

使用方式:模块目录通常为 modules/<name>/cmd.go 提供 Register,子命令再调用下级 Register;根命令仅导入并调用各模块的 Register。命令应使用 RunE 而非 Run,用 Args 字段校验参数,标志绑定到变量并标记必填,提供 Short/Long/Example 帮助文本,错误用 %w 包装上下文,并为命令编写测试。

适用场景:需要清晰命令层级、可独立增删模块、便于隔离测试的 Go CLI 项目。

限制:资料未提供具体安装命令、版本要求、收费信息或性能数据;示例中的 CLY 项目结构仅为参考模式,实际项目约定需自行确认。