From 03c2d888e8159899f9fe5b11455499d4e21b091c Mon Sep 17 00:00:00 2001
From: Florent Gluck <florent.gluck@hesge.ch>
Date: Fri, 27 Sep 2024 22:55:52 +0200
Subject: [PATCH] client: usersetcaps, vmaddaccess now display capabilities in
 alphabetical order; fixed missing carriage return in usersetcaps Bumpped
 client to version 1.11.1

---
 src/client/cmdUser/userSetCaps.go |  6 ++++--
 src/client/cmdVM/vmAddAccess.go   |  6 ++++--
 src/client/version/version.go     |  2 +-
 src/common/caps/caps.go           | 13 +++++++++++++
 4 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/src/client/cmdUser/userSetCaps.go b/src/client/cmdUser/userSetCaps.go
index 16cef5fe..15ab6393 100644
--- a/src/client/cmdUser/userSetCaps.go
+++ b/src/client/cmdUser/userSetCaps.go
@@ -41,18 +41,20 @@ List of user capabilities:
 `
     caps := caps.GetUserCapsNames()
     i := 0
+    count := 0
     for _, v := range caps {
         if (i == 0) {
             usage += "           "
         }
         usage += v + " "
         i += 1
-        if (i >= 5) {
+        count += 1
+        if (i >= 5 && count < len(caps)) {
             usage = u.AppendNewLine(usage)
             i = 0
         }
     }
-    u.PrintErr(usage)
+    u.PrintlnErr(usage)
 }
 
 func (cmd *SetCaps)Run(args []string) int {
diff --git a/src/client/cmdVM/vmAddAccess.go b/src/client/cmdVM/vmAddAccess.go
index 7f1a9211..3e0c9e64 100644
--- a/src/client/cmdVM/vmAddAccess.go
+++ b/src/client/cmdVM/vmAddAccess.go
@@ -43,18 +43,20 @@ List of VM access capabilities:
 `
     caps := caps.GetVMAccessCapsNames()
     i := 0
+    count := 0
     for _, v := range caps {
         if (i == 0) {
             usage += "           "
         }
         usage += v + " "
         i += 1
-        if (i >= 5) {
+        count += 1
+        if (i >= 5 && count < len(caps)) {
             usage = u.AppendNewLine(usage)
             i = 0
         }
     }
-    u.PrintErr(usage)
+    u.PrintlnErr(usage)
     printRegexUsageDetails()
 }
 
diff --git a/src/client/version/version.go b/src/client/version/version.go
index 2b4b5abd..0d0925bd 100644
--- a/src/client/version/version.go
+++ b/src/client/version/version.go
@@ -7,7 +7,7 @@ import (
 const (
     major  = 1
     minor  = 11
-    bugfix = 0
+    bugfix = 1
 )
 
 var version params.Version = params.NewVersion(major, minor, bugfix)
diff --git a/src/common/caps/caps.go b/src/common/caps/caps.go
index f4173606..602d1fb6 100644
--- a/src/common/caps/caps.go
+++ b/src/common/caps/caps.go
@@ -1,6 +1,7 @@
 package caps
 
 import (
+    "sort"
     "errors"
 )
 
@@ -131,6 +132,12 @@ func GetUserCapsNames() []string {
     for key, _ := range userCaps {
         caps = append(caps, key)
     }
+
+    // Sort caps by name
+    sort.Slice(caps, func(i, j int) bool {
+        return caps[i] < caps[j]
+    })
+
     return caps
 }
 
@@ -139,5 +146,11 @@ func GetVMAccessCapsNames() []string {
     for key, _ := range vmAccessCaps {
         caps = append(caps, key)
     }
+
+    // Sort caps by name
+    sort.Slice(caps, func(i, j int) bool {
+        return caps[i] < caps[j]
+    })
+
     return caps
 }
-- 
GitLab