diff --git a/cmd/root.go b/cmd/root.go index 688fec0..dae2742 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -71,6 +71,13 @@ func Main() int { Destination: &tree, Hidden: true, }, + &cli.BoolFlag{ + Name: "align-ints", + Aliases: []string{"I"}, + Value: false, + Usage: "right align integers in tabular output", + Destination: &conf.AlignInts, + }, &cli.StringFlag{ Name: "config", Aliases: []string{"c"}, diff --git a/pkg/cfg/config.go b/pkg/cfg/config.go index 9f61157..375105b 100644 --- a/pkg/cfg/config.go +++ b/pkg/cfg/config.go @@ -45,6 +45,7 @@ type Config struct { DefaultCluster *Cluster HaveJQ bool // determined at runtime by ourselfes ProfileFile string // for internal use (golang profiling) + AlignInts bool // -I Index string // index: -i Failed, Partials bool // index: flags diff --git a/pkg/printer/table.go b/pkg/printer/table.go index c258f54..d0083da 100644 --- a/pkg/printer/table.go +++ b/pkg/printer/table.go @@ -37,6 +37,7 @@ type Table struct { Entries [][]string lenHeaders []int + alignInts bool } func NewTable(conf *cfg.Config, columns, rows int) *Table { @@ -45,6 +46,7 @@ func NewTable(conf *cfg.Config, columns, rows int) *Table { table.Headers = make([]string, columns) table.Entries = make([][]string, rows) table.lenHeaders = make([]int, columns) + table.alignInts = conf.AlignInts return &table } @@ -137,7 +139,7 @@ func (data *Table) PrintTSV() error { for idx, entry := range entries { length := visibleLen(entry) - if isInt(entry) { + if isInt(entry) && data.alignInts { // align right fmt.Print(strings.Repeat(" ", data.lenHeaders[idx]-length), entry) } else {