📋 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可独立用于自定义命令输出