Skip to content

Latest commit

 

History

History
159 lines (103 loc) · 2.9 KB

File metadata and controls

159 lines (103 loc) · 2.9 KB

环境检查模块架构文档

📋 概述

本文档描述 Workflow CLI 的环境检查模块架构,包括 Git 仓库状态检查和网络连接检查功能。该模块用于诊断和验证工作环境。


📁 相关文件

CLI 入口层

src/main.rs

命令封装层

src/commands/check.rs    # 环境检查命令(57 行)

依赖模块

  • lib/git/:Git 操作(仓库检测、状态检查等)
  • lib/http/:HTTP 客户端(网络检查)

🔄 调用流程

整体架构流程

用户输入
  ↓
main.rs (CLI 入口,参数解析)
  ↓
commands/check.rs (命令封装层)
  ↓
lib/git/ 或 lib/http/ (核心业务逻辑层)

检查命令 (check.rs)

相关文件

src/commands/check.rs

调用流程

main.rs::Commands::Check
  ↓
commands/check.rs::CheckCommand::run_all()
  ↓
  1. Git::is_git_repo()                       # 检查是否在 Git 仓库中
  2. Git::status()                            # 检查 Git 状态
  3. cmd("curl", ...)                          # 检查网络连接(GitHub)

功能说明

  1. Git 仓库检查

    • 检查当前目录是否是 Git 仓库
    • 检查 Git 状态(是否有未提交的更改)
    • 使用 Git::is_git_repo()Git::status() 方法
  2. 网络连接检查

    • 检查到 GitHub 的网络连接
    • 使用 curl 命令测试连接
    • 超时时间 10 秒

关键步骤说明

  1. Git 检查

    • 如果不在 Git 仓库中,直接失败
    • 如果有未提交的更改,显示状态信息
    • 如果仓库干净,显示成功信息
  2. 网络检查

    • 使用 curl 测试到 GitHub 的连接
    • 如果失败,提供错误提示
    • 如果成功,显示成功信息

📊 数据流

环境检查数据流

命令执行
  ↓
Git 仓库检查
  ↓
网络连接检查
  ↓
结果显示

🔗 与其他模块的集成

Git 模块集成

  • lib/git/:Git 操作(仓库检测、状态检查等)

HTTP 模块集成

  • lib/http/:HTTP 客户端(网络检查)

🎯 设计模式

1. 命令模式

每个命令都是一个独立的结构体,实现统一的方法接口。

2. 工具函数模式

将复杂的操作封装到 lib/ 中的工具函数,命令层只负责调用和交互。


🔍 错误处理

分层错误处理

  1. CLI 层:参数验证错误
  2. 命令层:用户交互错误、业务逻辑错误
  3. 工具层:Git 操作错误、网络检查错误

容错机制

  • Git 检查失败:提供清晰的错误提示
  • 网络检查失败:提供错误原因和解决建议

📝 扩展性

添加新检查项

  1. check.rsrun_all() 方法中添加新的检查步骤
  2. 调用相应的工具函数或库函数

📚 相关文档