Skip to content

ℹ️ 关于

显示 Composer 本身的简短描述信息,并解析输出为结构化键值对。

composer about 输出 Composer 的名称、版本、描述等单行信息。Composer Skills 提供两个方法:About 返回原始文本,ParseAboutOutput 把它解析为 map[string]string

何时使用

  • 🩺 启动自检时打印一行 Composer 自我介绍。
  • 📊 仪表盘展示 Composer 元信息(版本、描述)。
  • 🔍 程序化提取 Composer 版本号用于版本比对(也可用更专门的 GetVersionInfo)。
  • 📝 生成环境报告时附带 Composer 的 about 信息。

方法签名

方法签名说明
ℹ️ Aboutfunc (c *Composer) About() (string, error)composer about 原始文本
🔧 ParseAboutOutputfunc ParseAboutOutput(output string) map[string]string解析为键值对 map

示例

打印 Composer 简介

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)
	}
	out, err := comp.About()
	if err != nil {
		log.Fatalf("获取 about 失败: %v", err)
	}
	fmt.Println(out)
}

结构化解析

go
out, _ := comp.About()
info := composer.ParseAboutOutput(out)
for k, v := range info {
	fmt.Printf("%s: %s\n", k, v)
}
// 典型输出:
// Composer: Composer
// version: 2.6.6
// ...

单独使用解析函数

go
// 你可以传入任何 about 风格的文本来解析
raw := "Composer: Composer\nversion: 2.6.6\nreleased: 2024-02-22"
info := composer.ParseAboutOutput(raw)
fmt.Println("version =", info["version"])

进阶

ParseAboutOutput 的解析规则

: 分割每行为 key / value,去除两端空白。无冒号的行会被跳过。因此它只适合 Key: Value 形式的输出。

想要更精确的版本信息

About 返回的是人读文本。如果你需要结构化的主/次/补丁号与发布日期,请用 GetVersionInfo,它解析 composer --version 输出为 VersionInfo 结构。

基于 MIT 许可证发布