Skip to content

Commit 3fbba6d

Browse files
committed
chore: sort services in 'uc ls' output by name
1 parent 439d956 commit 3fbba6d

1 file changed

Lines changed: 8 additions & 6 deletions

File tree

‎cmd/uncloud/service/ls.go‎

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ import (
44
"context"
55
"fmt"
66
"os"
7+
"slices"
78
"strings"
89
"text/tabwriter"
910

1011
"github.com/psviderski/uncloud/internal/cli"
12+
"github.com/psviderski/uncloud/pkg/api"
1113
"github.com/spf13/cobra"
1214
)
1315

@@ -36,15 +38,15 @@ func list(ctx context.Context, uncli *cli.CLI) error {
3638
return fmt.Errorf("list services: %w", err)
3739
}
3840

39-
serviceNames := make(map[string]struct{}, len(services))
41+
// Sort services by name.
4042
haveDuplicateNames := false
41-
for _, svc := range services {
42-
if _, exists := serviceNames[svc.Name]; exists {
43+
slices.SortFunc(services, func(a, b api.Service) int {
44+
if a.Name == b.Name {
4345
haveDuplicateNames = true
44-
break
46+
return strings.Compare(a.ID, b.ID)
4547
}
46-
serviceNames[svc.Name] = struct{}{}
47-
}
48+
return strings.Compare(a.Name, b.Name)
49+
})
4850

4951
// Print the list of services in a table format.
5052
tw := tabwriter.NewWriter(os.Stdout, 0, 0, 3, ' ', 0)

0 commit comments

Comments
 (0)