📈 StatusStructured
检查已安装依赖是否有本地修改,并返回结构化结果(是否修改、修改文件列表)。
何时使用
CI 中需要以布尔值或文件清单形式判断依赖是否被改动,而非解析纯文本输出时使用。
签名
go
func (c *Composer) StatusStructured() (*StatusResult, error)参数
| 参数 | 类型 | 说明 |
|---|---|---|
| 无 | — | 该方法不接收参数 |
返回值
*StatusResult:状态检查结果error:执行命令失败时返回错误
go
type StatusResult struct {
Modified bool `json:"modified"`
Files []string `json:"files,omitempty"`
Output string `json:"output,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.StatusStructured()
if err != nil {
log.Fatalf("检查状态失败: %v", err)
}
if result.Modified {
fmt.Printf("发现 %d 个修改的文件\n", len(result.Files))
for _, f := range result.Files {
fmt.Println("- " + f)
}
} else {
fmt.Println("依赖未被修改")
}
}进阶
- 该方法内部调用
composer status,再通过ParseStatusOutput解析 - 解析逻辑:输出为空则
Modified=false,否则每行非空内容计入Files并置Modified=true - 原始文本版本见 Status