Move selection logic to a db accessor #19

In this way the compiler consume such accessor, and make it possible to expand whenever used
This commit is contained in:
Ettore Di Giacinto
2019-12-01 19:11:19 +01:00
parent ddfb4fb8e8
commit 55fa7265e5
6 changed files with 52 additions and 24 deletions

View File

@@ -263,3 +263,25 @@ func (db *InMemoryDatabase) World() []Package {
}
return all
}
func (db *InMemoryDatabase) FindPackageCandidate(p Package) (Package, error) {
required, err := db.FindPackage(p)
if err != nil {
w := db.World()
// return nil, errors.Wrap(err, "Couldn't find required package in db definition")
packages, err := p.Expand(&w)
// Info("Expanded", packages, err)
if err != nil || len(packages) == 0 {
required = p
} else {
required = Best(packages)
}
return required, nil
//required = &DefaultPackage{Name: "test"}
}
return required, err
}