aboutsummaryrefslogtreecommitdiffstats
path: root/util/generic.go
diff options
context:
space:
mode:
Diffstat (limited to 'util/generic.go')
-rw-r--r--util/generic.go33
1 files changed, 18 insertions, 15 deletions
diff --git a/util/generic.go b/util/generic.go
index fec2c31..972aabf 100644
--- a/util/generic.go
+++ b/util/generic.go
@@ -74,13 +74,13 @@ func TruncateString(str string, maxRunes int) string {
if runeCount <= maxRunes || maxRunes < 9 {
return str
}
-
+
// Number of remaining runes to be removed
remaining := (runeCount - maxRunes) + utf8.RuneCountInString(indicator)
-
+
var truncated string
var skip bool
-
+
for leftOffset, char := range str {
rightOffset := runeCount - (leftOffset + remaining)
@@ -96,11 +96,11 @@ func TruncateString(str string, maxRunes int) string {
remaining--
continue
}
-
+
// Add char to result string
truncated += string(char)
}
-
+
// Return truncated string
return truncated
}
@@ -140,22 +140,25 @@ func Print(m map[string]string, keyOrder []string) {
}
// Prints items in columns with header and correct padding
-func PrintColumns(items []map[string]string, keyOrder []string, columnSpacing int) {
- // Create header
- header := make(map[string]string)
- for _, key := range keyOrder {
- header[key] = key
- }
+func PrintColumns(items []map[string]string, keyOrder []string, columnSpacing int, noHeader bool) {
+
+ if !noHeader {
+ // Create header
+ header := make(map[string]string)
+ for _, key := range keyOrder {
+ header[key] = key
+ }
- // Add header as the first element of items
- items = append([]map[string]string{header}, items...)
+ // Add header as the first element of items
+ items = append([]map[string]string{header}, items...)
+ }
// Get a padding function for each column
padFns := make(map[string]func(string)string)
for _, key := range keyOrder {
padFns[key] = columnPadder(items, key, columnSpacing)
}
-
+
// Loop, pad and print items
for _, item := range items {
var line string
@@ -175,7 +178,7 @@ func PrintColumns(items []map[string]string, keyOrder []string, columnSpacing in
func columnPadder(items []map[string]string, key string, spacing int) func(string)string {
// Holds length of longest string
var max int
-
+
// Find the longest string of type key in the array
for _, item := range items {
str := item[key]