4.6 KiB
4.6 KiB
任务20:命令行界面
任务描述
实现命令行界面,用于与用户交互,接收命令行参数,调用构建协调器等功能。命令行界面将作为用户与安装包构建系统交互的主要入口,提供友好的命令行体验和丰富的功能选项。
实现步骤
-
设计命令行结构:
- 在
cmd/installerbuilder包中创建main.go文件 - 使用cobra库设计命令行结构:
func main() { rootCmd := &cobra.Command{ Use: "installerbuilder", Short: "A tool for building cross-platform installers", Long: `InstallerBuilder is a comprehensive tool for building installation packages for multiple platforms and package formats.`, } // 添加子命令 rootCmd.AddCommand(buildCmd()) rootCmd.AddCommand(validateCmd()) rootCmd.AddCommand(versionCmd()) if err := rootCmd.Execute(); err != nil { fmt.Println(err) os.Exit(1) } }
- 在
-
实现构建命令:
- 创建buildCmd函数,实现构建命令
- 定义命令行参数和选项
- 调用构建协调器
- 处理构建结果
- 提供进度反馈
-
实现验证命令:
- 创建validateCmd函数,实现验证命令
- 验证配置文件
- 显示验证结果
- 提供详细的错误信息
-
实现版本命令:
- 创建versionCmd函数,实现版本命令
- 显示应用版本信息
- 显示构建信息
- 显示系统信息
-
实现初始化命令:
- 创建initCmd函数,实现初始化命令
- 创建配置文件模板
- 初始化项目结构
- 提供交互式配置
-
实现帮助和文档:
- 为所有命令添加详细的帮助信息
- 实现命令示例
- 提供命令行自动补全
- 实现命令行文档生成
-
实现日志和输出控制:
- 创建日志配置
- 支持不同的输出级别
- 支持输出到文件
- 实现彩色输出
-
实现错误处理:
- 创建错误处理机制
- 提供友好的错误信息
- 支持调试模式
- 实现错误代码
单元测试要求
-
测试命令行解析:
- 验证参数解析
- 测试选项处理
- 测试默认值
- 测试参数验证
-
测试构建命令:
- 验证构建命令
- 测试参数传递
- 测试协调器调用
- 测试结果处理
-
测试验证命令:
- 验证验证命令
- 测试配置验证
- 测试结果显示
- 测试错误信息
-
测试版本命令:
- 验证版本命令
- 测试版本信息
- 测试构建信息
- 测试系统信息
-
测试初始化命令:
- 验证初始化命令
- 测试模板创建
- 测试项目结构
- 测试交互式配置
-
测试帮助和文档:
- 验证帮助信息
- 测试命令示例
- 测试自动补全
- 测试文档生成
-
测试日志和输出:
- 验证日志配置
- 测试输出级别
- 测试文件输出
- 测试彩色输出
-
测试错误处理:
- 验证错误处理
- 测试错误信息
- 测试调试模式
- 测试错误代码
依赖关系
- 依赖任务01(项目初始化)
- 依赖任务02(日志系统实现)
- 依赖任务03(错误处理框架)
- 依赖任务05(配置模型定义)
- 依赖任务08(配置验证器)
- 依赖任务19(默认构建协调器)
完成标准
- 命令行界面结构设计合理
- 构建命令功能正常工作
- 验证命令功能正常工作
- 版本命令功能正常工作
- 初始化命令功能正常工作
- 帮助和文档功能完善
- 日志和输出控制功能正常工作
- 错误处理机制健壮
- 所有单元测试通过
- 代码符合项目的Go语言开发规范
- 命令行界面提供友好的用户体验
- 支持所有需求文档中的命令行相关功能
使用示例
-
构建安装包:
installerbuilder build --config config.yaml --platform windows --arch amd64 --type msi --output ./output -
验证配置:
installerbuilder validate --config config.yaml -
显示版本信息:
installerbuilder version -
初始化项目:
installerbuilder init --name myapp --version 1.0.0 -
显示帮助信息:
installerbuilder --help -
显示构建命令帮助:
installerbuilder build --help -
构建多个平台的安装包:
installerbuilder build --config config.yaml --platform windows,linux --arch amd64 --type msi,deb,rpm -
使用详细输出:
installerbuilder build --config config.yaml --verbose