diff --git a/deb/package.go b/deb/package.go index 43e0a39b..cf119de8 100644 --- a/deb/package.go +++ b/deb/package.go @@ -1,6 +1,7 @@ package deb import ( + "encoding/json" "fmt" "github.com/smira/aptly/aptly" "github.com/smira/aptly/utils" @@ -38,6 +39,11 @@ type Package struct { collection *PackageCollection } +// Check interface +var ( + _ json.Marshaler = &Package{} +) + // NewPackageFromControlFile creates Package from parsed Debian control file func NewPackageFromControlFile(input Stanza) *Package { result := &Package{ @@ -205,6 +211,11 @@ func (p *Package) String() string { return fmt.Sprintf("%s_%s_%s", p.Name, p.Version, p.Architecture) } +// MarshalJSON implements json.Marshaller interface +func (p *Package) MarshalJSON() ([]byte, error) { + return json.Marshal(p.Stanza()) +} + // GetField returns fields from package func (p *Package) GetField(name string) string { switch name {