mirror of
https://github.com/EnumeratedDev/bpm.git
synced 2026-09-16 02:26:12 +00:00
Replace ResolveVirtualPackage function with GetDatabaseVirtualPackageEntry
This commit is contained in:
+3
-1
@@ -234,7 +234,9 @@ func showPackageInfo() {
|
||||
var entry *bpmlib.BPMDatabaseEntry
|
||||
entry, _, err = bpmlib.GetDatabaseEntry(pkg)
|
||||
if err != nil {
|
||||
if entry = bpmlib.ResolveVirtualPackage(pkg); entry == nil {
|
||||
if providers := bpmlib.GetDatabaseVirtualPackageEntry(pkg); len(providers) > 0 {
|
||||
entry = providers[0]
|
||||
} else {
|
||||
log.Printf("Error: could not find package (%s) in any database\n", pkg)
|
||||
exitCode = 1
|
||||
return
|
||||
|
||||
+7
-10
@@ -20,7 +20,7 @@ import (
|
||||
type BPMDatabase struct {
|
||||
DatabaseVersion int `yaml:"database_version"`
|
||||
Entries map[string]*BPMDatabaseEntry `yaml:"entries"`
|
||||
VirtualPackages map[string][]string
|
||||
VirtualPackages map[string][]*BPMDatabaseEntry
|
||||
Name string
|
||||
Source string
|
||||
}
|
||||
@@ -59,7 +59,7 @@ func (db *configDatabase) ReadLocalDatabase() error {
|
||||
}
|
||||
|
||||
// Initialize struct values
|
||||
database.VirtualPackages = make(map[string][]string)
|
||||
database.VirtualPackages = make(map[string][]*BPMDatabaseEntry)
|
||||
database.Name = db.Name
|
||||
database.Source = db.Source
|
||||
|
||||
@@ -105,13 +105,13 @@ func (db *configDatabase) ReadLocalDatabase() error {
|
||||
|
||||
// Add virtual packages to database
|
||||
for _, p := range splitPkg.Provides {
|
||||
database.VirtualPackages[p] = append(database.VirtualPackages[p], splitPkg.Name)
|
||||
database.VirtualPackages[p] = append(database.VirtualPackages[p], database.Entries[splitPkg.Name])
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Add virtual packages to database
|
||||
for _, p := range entry.Info.Provides {
|
||||
database.VirtualPackages[p] = append(database.VirtualPackages[p], entry.Info.Name)
|
||||
database.VirtualPackages[p] = append(database.VirtualPackages[p], entry)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -231,15 +231,12 @@ func FindReplacement(pkg string) *BPMDatabaseEntry {
|
||||
return nil
|
||||
}
|
||||
|
||||
func ResolveVirtualPackage(vpkg string) *BPMDatabaseEntry {
|
||||
func GetDatabaseVirtualPackageEntry(vpkg string) (providers []*BPMDatabaseEntry) {
|
||||
for _, db := range BPMDatabases {
|
||||
if v, ok := db.VirtualPackages[vpkg]; ok {
|
||||
slices.Sort(v)
|
||||
return db.Entries[v[0]]
|
||||
}
|
||||
providers = append(providers, db.VirtualPackages[vpkg]...)
|
||||
}
|
||||
|
||||
return nil
|
||||
return providers
|
||||
}
|
||||
|
||||
func (db *BPMDatabase) FetchPackage(pkg string) (string, error) {
|
||||
|
||||
@@ -201,8 +201,9 @@ func resolvePackageDependenciesFromDatabase(resolved *[]pkgInstallationReason, u
|
||||
*unresolved = stringSliceRemove(*unresolved, resolvedVirtualPkg)
|
||||
|
||||
continue
|
||||
} else if entry = ResolveVirtualPackage(pkgIR.PkgName); entry != nil {
|
||||
} else if providers := GetDatabaseVirtualPackageEntry(pkgIR.PkgName); len(providers) > 0 {
|
||||
// Virtual package found in database
|
||||
entry = providers[0]
|
||||
} else {
|
||||
// Virtual package not found
|
||||
if !slices.Contains(*unresolved, pkgIR.PkgName) {
|
||||
|
||||
@@ -99,8 +99,8 @@ func InstallPackages(rootDir string, forceInstallationReason InstallationReason,
|
||||
pkgsNotFound = append(pkgsNotFound, pkg)
|
||||
continue
|
||||
}
|
||||
} else if e := ResolveVirtualPackage(pkg); e != nil {
|
||||
entry = e
|
||||
} else if providers := GetDatabaseVirtualPackageEntry(pkg); len(providers) > 0 {
|
||||
entry = providers[0]
|
||||
} else {
|
||||
pkgsNotFound = append(pkgsNotFound, pkg)
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user