adopt latest golang enhancements (#91)

This commit is contained in:
T. von Dein
2026-07-13 14:33:41 +02:00
parent c5a21bd677
commit 97a509da9e
19 changed files with 159 additions and 114 deletions

View File

@@ -27,7 +27,7 @@ func (b *ByteSize) String() string {
}
func Bytes(size int64) *ByteSize {
return &ByteSize{size: uint64(size)}
return new(ByteSize{size: uint64(size)})
}
func ByteString(size int64) string {

View File

@@ -35,15 +35,20 @@ type Table struct {
RawHeaders []string
Entries [][]any
rows [][]string // representation used for printing
processed bool
lenHeaders []int
alignInts bool
maxwidth int
rows [][]string // representation used for printing
processed bool
lenHeaders []int
alignInts bool
maxwidth int
debugGoRoutines bool
}
func NewTable(conf *cfg.Config, columns, rows int) *Table {
table := Table{Mode: conf.Output, maxwidth: cfg.GetTermWidth()}
table := new(Table{
Mode: conf.Output,
maxwidth: cfg.GetTermWidth(),
debugGoRoutines: conf.DebugGoRoutines,
})
table.Headers = make([]string, columns)
table.RawHeaders = make([]string, columns)
@@ -51,14 +56,18 @@ func NewTable(conf *cfg.Config, columns, rows int) *Table {
table.lenHeaders = make([]int, columns)
table.alignInts = conf.AlignInts
return &table
return table
}
func NewTableEmpty(conf *cfg.Config) *Table {
table := Table{Mode: conf.Output, maxwidth: cfg.GetTermWidth()}
table := new(Table{
Mode: conf.Output,
maxwidth: cfg.GetTermWidth(),
debugGoRoutines: conf.DebugGoRoutines,
})
table.alignInts = conf.AlignInts
return &table
return table
}
func (table *Table) WithHeaders(headers ...string) *Table {
@@ -75,16 +84,24 @@ func (table *Table) WithHeaders(headers ...string) *Table {
}
func (table *Table) Print() error {
var err error
switch table.Mode {
case "json":
return table.PrintJSON()
err = table.PrintJSON()
case "yaml":
return table.PrintYAML()
err = table.PrintYAML()
case "csv":
return table.PrintCSV()
err = table.PrintCSV()
default:
return table.PrintTSV()
err = table.PrintTSV()
}
if table.debugGoRoutines {
printGoRoutineMetrics()
}
return err
}
var (
@@ -149,9 +166,11 @@ func (table *Table) PrintTSV() error {
wrapped := wrapper(entry)
// and indent it
for idx, line := range strings.Split(wrapped, "\n") {
if idx == 0 {
first := true
for line := range strings.Lines(wrapped) {
if first {
entry = line
first = false
} else {
entry += "\n " + strings.Repeat(" ", currentWidth) + line
}