🔬 DiagnoseStructured
执行 composer diagnose 并把输出解析为结构化检查列表,每项带 ok/warning/error 状态。
何时使用
需要在程序中根据单项诊断结果(如证书是否正常、Composer 版本是否过期)做条件分支时使用。
签名
go
func (c *Composer) DiagnoseStructured() (*DiagnoseResult, error)参数
| 参数 | 类型 | 说明 |
|---|---|---|
| 无 | — | 该方法不接收参数 |
返回值
*DiagnoseResult:诊断结果,包含各检查项error:执行命令时的错误(注意:即使有 error,仍会返回已解析的结果)
go
type DiagnoseResult struct {
Checks []DiagnoseCheck `json:"checks,omitempty"`
}
type DiagnoseCheck struct {
Name string `json:"name"`
Status string `json:"status"` // "ok", "warning", "error", "info"
Detail string `json:"detail,omitempty"`
}示例
go
package main
import (
"fmt"
"log"
"github.com/scagogogo/composer-skills/pkg/composer"
)
func main() {
comp, err := composer.New(composer.DefaultOptions())
if err != nil {
log.Fatal(err)
}
result, err := comp.DiagnoseStructured()
if err != nil {
log.Printf("诊断出现错误: %v", err)
}
for _, check := range result.Checks {
fmt.Printf("[%s] %s\n", check.Status, check.Detail)
}
}进阶
- 解析由
ParseDiagnoseOutput完成:识别[OK]/✓、[WARNING]/⚠、[ERROR]/✗前缀判定状态 - 原始文本版本见 Diagnose
- 若需更全面的环境健康摘要,使用 HealthCheck