github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/fly/commands/internal/hijackhelpers/container_sorter.go (about) 1 package hijackhelpers 2 3 import ( 4 "strings" 5 6 "github.com/pf-qiu/concourse/v6/atc" 7 ) 8 9 type ContainerSorter []atc.Container 10 11 func (sorter ContainerSorter) Len() int { 12 return len(sorter) 13 } 14 15 func (sorter ContainerSorter) Swap(i, j int) { 16 sorter[i], sorter[j] = sorter[j], sorter[i] 17 } 18 19 func (sorter ContainerSorter) Less(i, j int) bool { 20 switch { 21 case sorter[i].BuildID < sorter[j].BuildID: 22 return true 23 case sorter[i].BuildID > sorter[j].BuildID: 24 return false 25 case strings.Compare(sorter[i].ResourceName, sorter[j].ResourceName) == -1: 26 return true 27 case strings.Compare(sorter[i].ResourceName, sorter[j].ResourceName) == 1: 28 return false 29 case strings.Compare(sorter[i].StepName, sorter[j].StepName) == -1: 30 return true 31 case strings.Compare(sorter[i].StepName, sorter[j].StepName) == 1: 32 return false 33 case strings.Compare(sorter[i].Type, sorter[j].Type) == -1: 34 return true 35 default: 36 return false 37 } 38 }