aboutsummaryrefslogtreecommitdiff
path: root/weed/util
diff options
context:
space:
mode:
Diffstat (limited to 'weed/util')
-rw-r--r--weed/util/inits.go9
-rw-r--r--weed/util/inits_test.go5
2 files changed, 14 insertions, 0 deletions
diff --git a/weed/util/inits.go b/weed/util/inits.go
index dfbf9da5f..378878012 100644
--- a/weed/util/inits.go
+++ b/weed/util/inits.go
@@ -5,6 +5,15 @@ import (
"sort"
)
+// HumanReadableIntsMax joins a serials of inits into a smart one like 1-3 5 ... for human readable.
+func HumanReadableIntsMax(max int, ids ...int) string {
+ if len(ids) <= max {
+ return HumanReadableInts(ids...)
+ }
+
+ return HumanReadableInts(ids[:max]...) + " ..."
+}
+
// HumanReadableInts joins a serials of inits into a smart one like 1-3 5 7-10 for human readable.
func HumanReadableInts(ids ...int) string {
sort.Ints(ids)
diff --git a/weed/util/inits_test.go b/weed/util/inits_test.go
index f1ccb4f7b..f2c9b701f 100644
--- a/weed/util/inits_test.go
+++ b/weed/util/inits_test.go
@@ -5,6 +5,11 @@ import (
"testing"
)
+func TestHumanReadableIntsMax(t *testing.T) {
+ assert.Equal(t, "1-2 ...", HumanReadableIntsMax(2, 1, 2, 3))
+ assert.Equal(t, "1 3 ...", HumanReadableIntsMax(2, 1, 3, 5))
+}
+
func TestHumanReadableInts(t *testing.T) {
assert.Equal(t, "1-3", HumanReadableInts(1, 2, 3))
assert.Equal(t, "1 3", HumanReadableInts(1, 3))