🎨 Refactor, use ensureoder where necessary

This commit is contained in:
mudler
2022-06-05 23:47:08 +02:00
committed by Ettore Di Giacinto
parent 03e72653c7
commit 2b3a1555f0
3 changed files with 52 additions and 32 deletions

View File

@@ -30,7 +30,7 @@ func (a *PackageAssert) String() string {
return fmt.Sprintf("%s/%s %s %s", a.Package.GetCategory(), a.Package.GetName(), a.Package.GetVersion(), msg)
}
func (assertions PackagesAssertions) EnsureOrder() PackagesAssertions {
func (assertions PackagesAssertions) EnsureOrder() (PackagesAssertions, error) {
orderedAssertions := PackagesAssertions{}
unorderedAssertions := PackagesAssertions{}
@@ -62,19 +62,19 @@ func (assertions PackagesAssertions) EnsureOrder() PackagesAssertions {
}
result, ok := graph.Toposort()
if !ok {
panic("Cycle found")
return nil, fmt.Errorf("cycle found")
}
for _, res := range result {
a, ok := tmpMap[res]
if !ok {
panic("fail")
// continue
return nil, fmt.Errorf("cycle found")
}
orderedAssertions = append(orderedAssertions, a)
// orderedAssertions = append(PackagesAssertions{a}, orderedAssertions...) // push upfront
}
//helpers.ReverseAny(orderedAssertions)
return orderedAssertions
return orderedAssertions, nil
}
// SearchByName searches a string matching a package in the assetion list