Skip to content

✨ ShowPackageInfo

获取指定包的结构化详细信息,内部执行 composer show packageName --format=json 并解析为 *PackageInfo

何时使用

  • 📋 需要字段化的包信息(名称、版本、许可证、作者、依赖等)做后续处理。
  • 🤖 脚本中自动提取包的 HomepageLicense
  • 🔍 程序化判断包是否被放弃维护。

签名

go
func (c *Composer) ShowPackageInfo(packageName string) (*PackageInfo, error)

参数

参数类型说明
packageNamestring要查询的包名

返回值

类型说明
结果*PackageInfo解析后的包信息
错误error执行或 JSON 解析失败时返回

PackageInfo 主要字段:

字段类型说明
Namestring包名
Versionstring当前版本
Descriptionstring描述
Typestring包类型
Homepagestring主页地址
License[]string许可证列表
Authors[]PackageAuthor作者列表
Requiremap[string]string生产依赖
RequireDevmap[string]string开发依赖
Abandonedinterface{}是否放弃维护(boolstring

示例

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.Fatalf("初始化失败: %v", err)
    }

    info, err := comp.ShowPackageInfo("symfony/console")
    if err != nil {
        log.Fatalf("获取包信息失败: %v", err)
    }
    fmt.Printf("包 %s 版本 %s\n", info.Name, info.Version)
    fmt.Printf("主页: %s\n", info.Homepage)
    fmt.Printf("许可证: %v\n", info.License)
}

进阶

文本输出

只需原始文本输出时用 ShowPackagecomposer show pkg)。

解析函数

ParsePackageInfo(output string) 可单独解析任意 composer show --format=json 输出,便于处理来自其他来源的 JSON。

🔍 相关方法

基于 MIT 许可证发布