installerbuilder/tasks/task20-命令行界面.md

4.6 KiB
Raw Permalink Blame History

任务20命令行界面

任务描述

实现命令行界面,用于与用户交互,接收命令行参数,调用构建协调器等功能。命令行界面将作为用户与安装包构建系统交互的主要入口,提供友好的命令行体验和丰富的功能选项。

实现步骤

  1. 设计命令行结构:

    • 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)
          }
      }
      
  2. 实现构建命令:

    • 创建buildCmd函数实现构建命令
    • 定义命令行参数和选项
    • 调用构建协调器
    • 处理构建结果
    • 提供进度反馈
  3. 实现验证命令:

    • 创建validateCmd函数实现验证命令
    • 验证配置文件
    • 显示验证结果
    • 提供详细的错误信息
  4. 实现版本命令:

    • 创建versionCmd函数实现版本命令
    • 显示应用版本信息
    • 显示构建信息
    • 显示系统信息
  5. 实现初始化命令:

    • 创建initCmd函数实现初始化命令
    • 创建配置文件模板
    • 初始化项目结构
    • 提供交互式配置
  6. 实现帮助和文档:

    • 为所有命令添加详细的帮助信息
    • 实现命令示例
    • 提供命令行自动补全
    • 实现命令行文档生成
  7. 实现日志和输出控制:

    • 创建日志配置
    • 支持不同的输出级别
    • 支持输出到文件
    • 实现彩色输出
  8. 实现错误处理:

    • 创建错误处理机制
    • 提供友好的错误信息
    • 支持调试模式
    • 实现错误代码

单元测试要求

  1. 测试命令行解析:

    • 验证参数解析
    • 测试选项处理
    • 测试默认值
    • 测试参数验证
  2. 测试构建命令:

    • 验证构建命令
    • 测试参数传递
    • 测试协调器调用
    • 测试结果处理
  3. 测试验证命令:

    • 验证验证命令
    • 测试配置验证
    • 测试结果显示
    • 测试错误信息
  4. 测试版本命令:

    • 验证版本命令
    • 测试版本信息
    • 测试构建信息
    • 测试系统信息
  5. 测试初始化命令:

    • 验证初始化命令
    • 测试模板创建
    • 测试项目结构
    • 测试交互式配置
  6. 测试帮助和文档:

    • 验证帮助信息
    • 测试命令示例
    • 测试自动补全
    • 测试文档生成
  7. 测试日志和输出:

    • 验证日志配置
    • 测试输出级别
    • 测试文件输出
    • 测试彩色输出
  8. 测试错误处理:

    • 验证错误处理
    • 测试错误信息
    • 测试调试模式
    • 测试错误代码

依赖关系

  • 依赖任务01项目初始化
  • 依赖任务02日志系统实现
  • 依赖任务03错误处理框架
  • 依赖任务05配置模型定义
  • 依赖任务08配置验证器
  • 依赖任务19默认构建协调器

完成标准

  1. 命令行界面结构设计合理
  2. 构建命令功能正常工作
  3. 验证命令功能正常工作
  4. 版本命令功能正常工作
  5. 初始化命令功能正常工作
  6. 帮助和文档功能完善
  7. 日志和输出控制功能正常工作
  8. 错误处理机制健壮
  9. 所有单元测试通过
  10. 代码符合项目的Go语言开发规范
  11. 命令行界面提供友好的用户体验
  12. 支持所有需求文档中的命令行相关功能

使用示例

  1. 构建安装包:

    installerbuilder build --config config.yaml --platform windows --arch amd64 --type msi --output ./output
    
  2. 验证配置:

    installerbuilder validate --config config.yaml
    
  3. 显示版本信息:

    installerbuilder version
    
  4. 初始化项目:

    installerbuilder init --name myapp --version 1.0.0
    
  5. 显示帮助信息:

    installerbuilder --help
    
  6. 显示构建命令帮助:

    installerbuilder build --help
    
  7. 构建多个平台的安装包:

    installerbuilder build --config config.yaml --platform windows,linux --arch amd64 --type msi,deb,rpm
    
  8. 使用详细输出:

    installerbuilder build --config config.yaml --verbose