Skip to content

✨ ShowPackageInfo

Gets structured details for a given package. Internally runs composer show packageName --format=json and parses the output into *PackageInfo.

When to use

  • 📋 Field-level package information (name, version, license, authors, dependencies, etc.) for further processing.
  • 🤖 Automatically extract a package's Homepage or License in a script.
  • 🔍 Programmatically determine whether a package is abandoned.

Signature

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

Parameters

ParameterTypeDescription
packageNamestringName of the package to query

Return value

ValueTypeDescription
Result*PackageInfoParsed package information
ErrorerrorReturned when execution or JSON parsing fails

Main fields of PackageInfo:

FieldTypeDescription
NamestringPackage name
VersionstringCurrent version
DescriptionstringDescription
TypestringPackage type
HomepagestringHomepage URL
License[]stringLicense list
Authors[]PackageAuthorAuthor list
Requiremap[string]stringProduction dependencies
RequireDevmap[string]stringDevelopment dependencies
Abandonedinterface{}Whether abandoned (bool or string)

Example

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("init failed: %v", err)
    }

    info, err := comp.ShowPackageInfo("symfony/console")
    if err != nil {
        log.Fatalf("get package info failed: %v", err)
    }
    fmt.Printf("package %s version %s\n", info.Name, info.Version)
    fmt.Printf("homepage: %s\n", info.Homepage)
    fmt.Printf("license: %v\n", info.License)
}

Advanced

Text output

Use ShowPackage (composer show pkg) when you only need the raw text output.

Parser function

ParsePackageInfo(output string) can parse any composer show --format=json output standalone, useful for processing JSON from other sources.

Released under the MIT License