aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastien Douheret <sebastien.douheret@iot.bzh>2018-01-26 17:28:12 +0100
committerSebastien Douheret <sebastien.douheret@iot.bzh>2018-01-26 17:28:12 +0100
commit5ce05ccae810f532e73350a205b979faf2603235 (patch)
tree6a091bf3fad48f146d152f0336664dee8982a07c
parentc3c015d68a6f27bdb86c594ffbb481ee68f9e0c1 (diff)
Sort projects and sdks list.
Signed-off-by: Sebastien Douheret <sebastien.douheret@iot.bzh>
-rw-r--r--cmd-sdks.go11
-rw-r--r--utils.go16
2 files changed, 26 insertions, 1 deletions
diff --git a/cmd-sdks.go b/cmd-sdks.go
index bc9df15..3fc596f 100644
--- a/cmd-sdks.go
+++ b/cmd-sdks.go
@@ -22,6 +22,7 @@ import (
"fmt"
"os"
"regexp"
+ "sort"
"gerrit.automotivelinux.org/gerrit/src/xds/xds-agent.git/lib/xaapiv1"
"github.com/urfave/cli"
@@ -204,6 +205,14 @@ func _displaySdks(sdks []xaapiv1.SDK, verbose bool, all bool, filter string) {
writer.Flush()
}
+// Sort SDKs by ID
+type _SdkByID []xaapiv1.SDK
+
+func (s _SdkByID) Len() int { return len(s) }
+func (s _SdkByID) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
+func (s _SdkByID) Less(i, j int) bool { return s[i].ID < s[j].ID }
+
+// _sdksListGet Get the list of existing sdks
func _sdksListGet(sdks *[]xaapiv1.SDK) error {
url := XdsServerComputeURL("/sdks")
if err := HTTPCli.Get(url, &sdks); err != nil {
@@ -211,6 +220,8 @@ func _sdksListGet(sdks *[]xaapiv1.SDK) error {
}
Log.Debugf("Result of %s: %v", url, sdks)
+ sort.Sort(_SdkByID(*sdks))
+
return nil
}
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