Add Package serialization to JSON via stanza. #168

This commit is contained in:
Andrey Smirnov
2015-02-05 01:26:55 +03:00
parent 8c15a0ca95
commit 25d048fe49
+11
View File
@@ -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 {