Skip to content

📋 CheckPlatformReqsStructured

检查平台需求并返回带状态标记的结构化结果(ok/missing/mismatch)。

何时使用

需要在程序中精确区分"缺失扩展"与"版本不匹配"两种情况,并据此给出不同提示时使用。

签名

go
func (c *Composer) CheckPlatformReqsStructured() (*PlatformCheckResult, error)

参数

参数类型说明
该方法不接收参数

返回值

  • *PlatformCheckResult:平台需求检查结果,包含每项需求和总体 OK 标记
  • error:执行或解析失败时返回错误
go
type PlatformCheckResult struct {
    Requirements []PlatformRequirement `json:"requirements"`
    OK           bool                  `json:"ok"`
}

type PlatformRequirement struct {
    Package  string `json:"package"`
    Version  string `json:"version,omitempty"`
    Status   string `json:"status"` // "ok", "missing", "mismatch"
    Required string `json:"required,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.CheckPlatformReqsStructured()
    if err != nil {
        log.Fatalf("平台需求检查失败: %v", err)
    }

    fmt.Printf("总体通过: %v\n", result.OK)
    for _, req := range result.Requirements {
        fmt.Printf("%s %s -> %s\n", req.Package, req.Required, req.Status)
    }
}

进阶

  • 该方法执行 composer check-platform-reqs --format=json 并通过 ParsePlatformCheckResult 解析
  • Status 既非 ok 也非 success 时,OK 会被置为 false
  • 若只需 Available 布尔判断,使用更简单的 CheckPlatform
  • 解析函数 ParsePlatformCheckResult 可独立用于自定义命令输出

基于 MIT 许可证发布