X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fxds%2Fxds-cli.git;a=blobdiff_plain;f=utils.go;h=afa0942071761e8bdcbe82250b8126058e05f42d;hp=b47cd04aafdb93d5d23517ef167f307532705bdc;hb=5ce05ccae810f532e73350a205b979faf2603235;hpb=c3c015d68a6f27bdb86c594ffbb481ee68f9e0c1 diff --git a/utils.go b/utils.go index b47cd04..afa0942 100644 --- a/utils.go +++ b/utils.go @@ -21,6 +21,7 @@ package main import ( "encoding/json" "fmt" + "sort" "strconv" "strings" @@ -90,6 +91,13 @@ func XdsServerComputeURL(endURL string) string { return "servers/" + strconv.Itoa(XdsServerIndexGet()) + endURL } +// Sort projects by Label +type _PrjByLabel []xaapiv1.ProjectConfig + +func (s _PrjByLabel) Len() int { return len(s) } +func (s _PrjByLabel) Swap(i, j int) { s[i], s[j] = s[j], s[i] } +func (s _PrjByLabel) Less(i, j int) bool { return s[i].Label < s[j].Label } + // ProjectsListGet Get the list of existing projects func ProjectsListGet(prjs *[]xaapiv1.ProjectConfig) error { var data []byte @@ -98,7 +106,13 @@ func ProjectsListGet(prjs *[]xaapiv1.ProjectConfig) error { } Log.Debugf("Result of /projects: %v", string(data[:])) - return json.Unmarshal(data, &prjs) + if err := json.Unmarshal(data, &prjs); err != nil { + return err + } + + sort.Sort(_PrjByLabel(*prjs)) + + return nil } // LogPost Helper to log a POST request