mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-05-30 04:20:53 +00:00
Make files hash a type for proper JSON serialization
This commit is contained in:
+8
-2
@@ -9,6 +9,8 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type Hash uint64
|
||||||
|
|
||||||
// Package is single instance of Debian package
|
// Package is single instance of Debian package
|
||||||
type Package struct {
|
type Package struct {
|
||||||
// Basic package properties
|
// Basic package properties
|
||||||
@@ -27,7 +29,7 @@ type Package struct {
|
|||||||
// Is this udeb package
|
// Is this udeb package
|
||||||
IsUdeb bool
|
IsUdeb bool
|
||||||
// Hash of files section
|
// Hash of files section
|
||||||
FilesHash uint64
|
FilesHash Hash
|
||||||
// Is this >= 0.6 package?
|
// Is this >= 0.6 package?
|
||||||
V06Plus bool
|
V06Plus bool
|
||||||
// Offload fields
|
// Offload fields
|
||||||
@@ -38,6 +40,10 @@ type Package struct {
|
|||||||
collection *PackageCollection
|
collection *PackageCollection
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (h *Hash) MarshalJSON() ([]byte, error) {
|
||||||
|
return []byte(fmt.Sprintf("\"%08x\"", *h)), nil
|
||||||
|
}
|
||||||
|
|
||||||
// NewPackageFromControlFile creates Package from parsed Debian control file
|
// NewPackageFromControlFile creates Package from parsed Debian control file
|
||||||
func NewPackageFromControlFile(input Stanza) *Package {
|
func NewPackageFromControlFile(input Stanza) *Package {
|
||||||
result := &Package{
|
result := &Package{
|
||||||
@@ -398,7 +404,7 @@ func (p *Package) Files() PackageFiles {
|
|||||||
// UpdateFiles saves new state of files
|
// UpdateFiles saves new state of files
|
||||||
func (p *Package) UpdateFiles(files PackageFiles) {
|
func (p *Package) UpdateFiles(files PackageFiles) {
|
||||||
p.files = &files
|
p.files = &files
|
||||||
p.FilesHash = files.Hash()
|
p.FilesHash = Hash(files.Hash())
|
||||||
}
|
}
|
||||||
|
|
||||||
// Stanza creates original stanza from package
|
// Stanza creates original stanza from package
|
||||||
|
|||||||
Reference in New Issue
Block a user