Files
repokit/rpm-model.go

152 lines
2.9 KiB
Go

package repokit
import "sort"
import "sync"
type RpmPackage struct {
PkgKey int64
PkgId string
Name string
Arch string
Version string
Epoch string
Release string
Summary string
Description string
Url string
TimeFile int64
TimeBuild int64
RpmLicense string
RpmVendor string
RpmGroup string
RpmBuildHost string
RpmSourceRpm string
RpmHeaderStart int
RpmHeaderEnd int
RpmPackager string
SizePackage int64
SizeInstalled int64
SizeArchive int64
LocationHref string
LocationBase string
RpmChecksumType string
FilesChecksumType string
Requires []RpmDependency
Provides []RpmDependency
Conflicts []RpmDependency
Obsoletes []RpmDependency
Suggests []RpmDependency
Enhances []RpmDependency
Recommends []RpmDependency
Supplements []RpmDependency
Files []RpmPackageFile
Changelogs []RpmChangelogEntry
}
type RpmDependency struct {
Name string
Flags string
Epoch string
Version string
Release string
Pre bool
}
type RpmChangelogEntry struct {
Author string
Date int64
Changelog string
}
type RpmPackageFile struct {
FullPath string
Type string
Digest string
}
type RpmEVR struct {
Epoch string
Version string
Release string
}
type RpmNEVR struct {
Name string
Epoch string
Version string
Release string
}
type RpmNEVRA struct {
Name string
Epoch string
Version string
Release string
Arch string
}
type RpmApValueStruct struct {
Flags string
Version string
Pre bool
}
type RpmDuplicateLocation struct {
Location string
Pkg *RpmPackage
}
type RpmXmlStruct struct {
Primary string
Filelists string
FilelistsExt string
Other string
}
type RpmXmlStructAll struct {
MutexPrimary sync.Mutex
MutexFilelists sync.Mutex
MutexOtherData sync.Mutex
MutexFilelistsExt sync.Mutex
RpmPrimaryXMLData
RpmFilelistsXMLData
RpmOtherXMLData
RpmFilelistsExtXMLData
}
func (x *RpmXmlStructAll) SortPackageByTaskID() {
sort.Slice(x.RpmPrimaryXMLData.PackageList, func(i int, j int) bool {
var cmp bool
cmp = x.RpmPrimaryXMLData.PackageList[i].ID < x.RpmPrimaryXMLData.PackageList[j].ID
return cmp
})
sort.Slice(x.RpmFilelistsXMLData.PackageList, func(i int, j int) bool {
var cmp bool
cmp = x.RpmFilelistsXMLData.PackageList[i].ID < x.RpmFilelistsXMLData.PackageList[j].ID
return cmp
})
sort.Slice(x.RpmOtherXMLData.PackageList, func(i int, j int) bool {
var cmp bool
cmp = x.RpmOtherXMLData.PackageList[i].ID < x.RpmOtherXMLData.PackageList[j].ID
return cmp
})
sort.Slice(x.RpmFilelistsExtXMLData.PackageList, func(i int, j int) bool {
var cmp bool
cmp = x.RpmFilelistsExtXMLData.PackageList[i].ID < x.RpmFilelistsExtXMLData.PackageList[j].ID
return cmp
})
}
func (x *RpmXmlStructAll) SetPackageNum() {
x.RpmPrimaryXMLData.PackageNum = len(x.RpmPrimaryXMLData.PackageList)
x.RpmFilelistsXMLData.PackageNum = len(x.RpmFilelistsXMLData.PackageList)
x.RpmOtherXMLData.PackageNum = len(x.RpmOtherXMLData.PackageList)
x.RpmFilelistsExtXMLData.PackageNum = len(x.RpmFilelistsExtXMLData.PackageList)
}