From 75264a6fc7d2bbf27c90fa011e98ca9b78ff050c Mon Sep 17 00:00:00 2001 From: amela Date: Tue, 22 Oct 2024 11:29:07 +0200 Subject: [PATCH] feat(cmd/network/status): Sort paratimes --- cmd/network/status.go | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/cmd/network/status.go b/cmd/network/status.go index 80ca427f..bdf87f25 100644 --- a/cmd/network/status.go +++ b/cmd/network/status.go @@ -3,12 +3,15 @@ package network import ( "context" "fmt" + "sort" "strings" "time" "github.com/spf13/cobra" flag "github.com/spf13/pflag" + coreCommon "github.com/oasisprotocol/oasis-core/go/common" + "github.com/oasisprotocol/oasis-sdk/client-sdk/go/connection" "github.com/oasisprotocol/cli/cmd/common" @@ -132,7 +135,30 @@ var ( fmt.Println("==== ParaTimes ====") } - for _, runtime := range nodeStatus.Runtimes { + keys := make([]coreCommon.Namespace, 0, len(nodeStatus.Runtimes)) + for key := range nodeStatus.Runtimes { + keys = append(keys, key) + } + sort.Slice(keys, func(i, j int) bool { + iParatimeName := "unknown" + jParatimeName := "unknown" + + iDescriptor := nodeStatus.Runtimes[keys[i]].Descriptor + jDescriptor := nodeStatus.Runtimes[keys[j]].Descriptor + + if iDescriptor != nil { + iParatimeName = getParatimeName(cfg, iDescriptor.ID.String()) + } + + if jDescriptor != nil { + jParatimeName = getParatimeName(cfg, jDescriptor.ID.String()) + } + + return iParatimeName < jParatimeName + }) + + for _, key := range keys { + runtime := nodeStatus.Runtimes[key] descriptor := runtime.Descriptor if descriptor != nil { paratimeName := getParatimeName(cfg, descriptor.ID.String())