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) }