go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers-sdk/v1/upstream/mvd/sort.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package mvd 5 6 import ( 7 "strings" 8 ) 9 10 type BySeverity []*Advisory 11 12 func (s BySeverity) Len() int { 13 return len(s) 14 } 15 16 func (s BySeverity) Swap(i, j int) { 17 s[i], s[j] = s[j], s[i] 18 } 19 20 func (s BySeverity) Less(i, j int) bool { 21 return s[i].Score < s[j].Score 22 } 23 24 type ByPkgSeverity []*Package 25 26 func (s ByPkgSeverity) Len() int { 27 return len(s) 28 } 29 30 func (s ByPkgSeverity) Swap(i, j int) { 31 s[i], s[j] = s[j], s[i] 32 } 33 34 // sort first by score, then by reverse name 35 func (s ByPkgSeverity) Less(i, j int) bool { 36 if s[i].Score == s[j].Score { 37 return strings.ToLower(s[i].Name) > strings.ToLower(s[j].Name) 38 } 39 40 return s[i].Score < s[j].Score 41 } 42 43 func FilterByAffected(pkgs []*Package) []*Package { 44 filtered := []*Package{} 45 for i := range pkgs { 46 if pkgs[i].Affected == true { 47 filtered = append(filtered, pkgs[i]) 48 } 49 } 50 return filtered 51 }