Add SortByColumn function and improve some functions

main
Stefano 2021-11-26 11:39:51 +01:00
parent d14f1867e0
commit 17f24f765c
1 changed files with 16 additions and 4 deletions

View File

@ -2,6 +2,7 @@ package main
import ( import (
"fmt" "fmt"
"sort"
"strings" "strings"
) )
@ -32,12 +33,15 @@ func centerString(s string, width int) string {
return strings.Repeat(" ", leftPadding) + s + strings.Repeat(" ", rightPadding) return strings.Repeat(" ", leftPadding) + s + strings.Repeat(" ", rightPadding)
} }
func formatStr(fileName string, maxSize int) string { func cutStr(s string, maxSize int) string {
if len(fileName) <= maxSize { if len(s) <= maxSize {
return centerString(fileName, maxSize) return s
}
return s[:maxSize-3] + "..."
} }
return centerString(fileName[:maxSize-3]+"...", maxSize) func formatStr(s string, maxSize int) string {
return centerString(cutStr(s, maxSize), maxSize)
} }
const paddingDefault = 2 const paddingDefault = 2
@ -124,6 +128,14 @@ func (printer *TablePrinter) AddRow(r Row) {
} }
func (printer *TablePrinter) SortByColumn(col int) {
if col < printer.NumCols() {
sort.Slice(printer.Rows, func(i, j int) bool {
return printer.Rows[i][col] < printer.Rows[j][col]
})
}
}
func (printer *TablePrinter) Print() { func (printer *TablePrinter) Print() {
colWidths := printer.computeColumnWidthds() colWidths := printer.computeColumnWidthds()