diff options
| author | Erich Roncarolo | 2014-02-15 17:24:26 +0100 |
|---|---|---|
| committer | Erich Roncarolo | 2014-02-15 17:24:26 +0100 |
| commit | 10cfc69a087a96833bfb2f9d8feab0875f4f9aa7 (patch) | |
| tree | 5ce8ac5ea6ac6b37c5e85a424fbe0c669f44b500 /util | |
| parent | d1e0a57e2b08311da8eb6866497c763aec3121db (diff) | |
| download | gdrive-10cfc69a087a96833bfb2f9d8feab0875f4f9aa7.tar.bz2 | |
Folder support added
Diffstat (limited to 'util')
| -rw-r--r-- | util/generic.go | 33 |
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] |
