bpm-repo: recognize split packages

This commit is contained in:
2026-05-14 17:13:12 +03:00
parent 5dbdfdd4c1
commit 9114bb4148
+34 -5
View File
@@ -543,7 +543,7 @@ func compileAllPackagesFunc(repo string) {
return nil return nil
} }
for _, pkg := range pkgsMap { for _, pkg := range pkgs {
if mark, _ := marked[pkg.Name]; mark != 2 { if mark, _ := marked[pkg.Name]; mark != 2 {
visit(pkg) visit(pkg)
} }
@@ -558,15 +558,44 @@ func compileAllPackagesFunc(repo string) {
// Check if source database entry is not synced // Check if source database entry is not synced
if sourceDatabase != nil { if sourceDatabase != nil {
if sourcePkgInfo, ok := sourceDatabase.Entries[pkgInfo.Name]; !ok || sourcePkgInfo.PackageInfo.GetFullVersion() != pkgInfo.GetFullVersion() { if len(pkgInfo.SplitPackages) != 0 {
skip = false sourcePkgInfo, ok := sourceDatabase.Entries[pkgInfo.Name]
if ok {
hasSplitPkg := func(name string) bool {
return slices.ContainsFunc(sourcePkgInfo.PackageInfo.SplitPackages, func(splitPkg *bpmutilsshared.PackageInfo) bool {
return name == splitPkg.Name
})
}
for _, splitPkg := range pkgInfo.SplitPackages {
if !hasSplitPkg(splitPkg.Name) || sourcePkgInfo.PackageInfo.GetFullVersion() != pkgInfo.GetFullVersion() {
skip = false
break
}
}
} else {
skip = false
}
} else {
if sourcePkgInfo, ok := sourceDatabase.Entries[pkgInfo.Name]; !ok || sourcePkgInfo.PackageInfo.GetFullVersion() != pkgInfo.GetFullVersion() {
skip = false
}
} }
} }
// Check if binary database entry is not synced // Check if binary database entry is not synced
if binaryDatabase != nil { if binaryDatabase != nil {
if binaryPkgInfo, ok := binaryDatabase.Entries[pkgInfo.Name]; !ok || binaryPkgInfo.PackageInfo.GetFullVersion() != pkgInfo.GetFullVersion() { if len(pkgInfo.SplitPackages) != 0 {
skip = false for _, splitPkg := range pkgInfo.SplitPackages {
if binaryPkgInfo, ok := binaryDatabase.Entries[splitPkg.Name]; !ok || binaryPkgInfo.PackageInfo.GetFullVersion() != pkgInfo.GetFullVersion() {
skip = false
break
}
}
} else {
if binaryPkgInfo, ok := binaryDatabase.Entries[pkgInfo.Name]; !ok || binaryPkgInfo.PackageInfo.GetFullVersion() != pkgInfo.GetFullVersion() {
skip = false
}
} }
} }
} }