Skip to content

Commit db6f588

Browse files
tekenstamTodd Ekenstam
andauthored
chore: update tablewriter to v1.1.4 (#136)
Migrate cmd/cli/get.go from the deprecated v0.0.5 API to v1.1.4: - NewWriter() → NewTable() with WithRenderer(renderer.NewBlueprint(...)) - Individual Set*() calls → Configure() + tw.Rendition for border/separator config - SetHeader() → Header() - AppendBulk() → per-row Append() with error handling - Render() → Render() with error handling - ALIGN_LEFT constant → tw.AlignLeft - Tab padding via CellPadding.Global with Overwrite: true Output format is preserved: no borders, tab-separated columns, left-aligned headers and data, no header separator line. Signed-off-by: Todd Ekenstam <todd_ekenstam@intuit.com> Co-authored-by: Todd Ekenstam <todd_ekenstam@intuit.com>
1 parent f87e68c commit db6f588

File tree

3 files changed

+74
-29
lines changed

3 files changed

+74
-29
lines changed

cmd/cli/get.go

Lines changed: 40 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ import (
2222

2323
"github.com/keikoproj/aws-auth/pkg/mapper"
2424
"github.com/olekukonko/tablewriter"
25+
"github.com/olekukonko/tablewriter/renderer"
26+
"github.com/olekukonko/tablewriter/tw"
2527
"github.com/spf13/cobra"
2628
)
2729

@@ -53,31 +55,51 @@ var getCmd = &cobra.Command{
5355
log.Fatal(err)
5456
}
5557

56-
table := tablewriter.NewWriter(os.Stdout)
57-
table.SetHeader([]string{"Type", "ARN", "Username", "Groups"})
58-
table.SetAutoWrapText(false)
59-
table.SetAutoFormatHeaders(true)
60-
table.SetHeaderAlignment(tablewriter.ALIGN_LEFT)
61-
table.SetAlignment(tablewriter.ALIGN_LEFT)
62-
table.SetCenterSeparator("")
63-
table.SetColumnSeparator("")
64-
table.SetRowSeparator("")
65-
table.SetHeaderLine(false)
66-
table.SetBorder(false)
67-
table.SetTablePadding("\t")
68-
table.SetNoWhiteSpace(true)
69-
data := make([][]string, 0)
58+
table := tablewriter.NewTable(os.Stdout,
59+
tablewriter.WithRenderer(renderer.NewBlueprint(tw.Rendition{
60+
Borders: tw.Border{
61+
Left: tw.Off,
62+
Right: tw.Off,
63+
Top: tw.Off,
64+
Bottom: tw.Off,
65+
},
66+
Settings: tw.Settings{
67+
Lines: tw.Lines{
68+
ShowTop: tw.Off,
69+
ShowBottom: tw.Off,
70+
ShowHeaderLine: tw.Off,
71+
},
72+
Separators: tw.Separators{
73+
BetweenColumns: tw.Off,
74+
BetweenRows: tw.Off,
75+
},
76+
},
77+
})),
78+
)
79+
table.Configure(func(cfg *tablewriter.Config) {
80+
cfg.Header.Alignment.Global = tw.AlignLeft
81+
cfg.Header.Formatting.AutoFormat = tw.Off
82+
cfg.Row.Alignment.Global = tw.AlignLeft
83+
cfg.Header.Padding.Global = tw.Padding{Left: "\t", Right: "", Overwrite: true}
84+
cfg.Row.Padding.Global = tw.Padding{Left: "\t", Right: "", Overwrite: true}
85+
})
86+
table.Header([]string{"Type", "ARN", "Username", "Groups"})
7087

7188
for _, row := range d.MapRoles {
72-
data = append(data, []string{"Role Mapping", row.RoleARN, row.Username, strings.Join(row.Groups, ", ")})
89+
if err := table.Append([]string{"Role Mapping", row.RoleARN, row.Username, strings.Join(row.Groups, ", ")}); err != nil {
90+
log.Fatal(err)
91+
}
7392
}
7493

7594
for _, row := range d.MapUsers {
76-
data = append(data, []string{"User Mapping", row.UserARN, row.Username, strings.Join(row.Groups, ", ")})
95+
if err := table.Append([]string{"User Mapping", row.UserARN, row.Username, strings.Join(row.Groups, ", ")}); err != nil {
96+
log.Fatal(err)
97+
}
7798
}
7899

79-
table.AppendBulk(data)
80-
table.Render()
100+
if err := table.Render(); err != nil {
101+
log.Fatal(err)
102+
}
81103
},
82104
}
83105

go.mod

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ go 1.26.0
44

55
require (
66
github.com/jpillora/backoff v1.0.0
7-
github.com/olekukonko/tablewriter v0.0.5
7+
github.com/olekukonko/tablewriter v1.1.4
88
github.com/onsi/gomega v1.39.1
99
github.com/pkg/errors v0.9.1
1010
github.com/spf13/cobra v1.10.2
@@ -15,8 +15,12 @@ require (
1515
)
1616

1717
require (
18+
github.com/cespare/xxhash/v2 v2.3.0 // indirect
19+
github.com/clipperhouse/displaywidth v0.10.0 // indirect
20+
github.com/clipperhouse/uax29/v2 v2.6.0 // indirect
1821
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
1922
github.com/emicklei/go-restful/v3 v3.12.2 // indirect
23+
github.com/fatih/color v1.18.0 // indirect
2024
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
2125
github.com/go-logr/logr v1.4.3 // indirect
2226
github.com/go-openapi/jsonpointer v0.21.1 // indirect
@@ -30,11 +34,15 @@ require (
3034
github.com/josharian/intern v1.0.0 // indirect
3135
github.com/json-iterator/go v1.1.12 // indirect
3236
github.com/mailru/easyjson v0.9.0 // indirect
33-
github.com/mattn/go-runewidth v0.0.16 // indirect
37+
github.com/mattn/go-colorable v0.1.14 // indirect
38+
github.com/mattn/go-isatty v0.0.20 // indirect
39+
github.com/mattn/go-runewidth v0.0.19 // indirect
3440
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
3541
github.com/modern-go/reflect2 v1.0.2 // indirect
3642
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
37-
github.com/rivo/uniseg v0.4.7 // indirect
43+
github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 // indirect
44+
github.com/olekukonko/errors v1.2.0 // indirect
45+
github.com/olekukonko/ll v0.1.6 // indirect
3846
github.com/spf13/pflag v1.0.9 // indirect
3947
github.com/x448/float16 v0.8.4 // indirect
4048
go.yaml.in/yaml/v3 v3.0.4 // indirect

go.sum

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
11
github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0=
22
github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
3+
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
4+
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
5+
github.com/clipperhouse/displaywidth v0.10.0 h1:GhBG8WuerxjFQQYeuZAeVTuyxuX+UraiZGD4HJQ3Y8g=
6+
github.com/clipperhouse/displaywidth v0.10.0/go.mod h1:XqJajYsaiEwkxOj4bowCTMcT1SgvHo9flfF3jQasdbs=
7+
github.com/clipperhouse/uax29/v2 v2.6.0 h1:z0cDbUV+aPASdFb2/ndFnS9ts/WNXgTNNGFoKXuhpos=
8+
github.com/clipperhouse/uax29/v2 v2.6.0/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsVRgg6W7ihQeh4g=
39
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
410
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
511
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
612
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
713
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
814
github.com/emicklei/go-restful/v3 v3.12.2 h1:DhwDP0vY3k8ZzE0RunuJy8GhNpPL6zqLkDf9B/a0/xU=
915
github.com/emicklei/go-restful/v3 v3.12.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
16+
github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
17+
github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
1018
github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=
1119
github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
1220
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
@@ -47,18 +55,27 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
4755
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
4856
github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4=
4957
github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU=
50-
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
51-
github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=
52-
github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
58+
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
59+
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
60+
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
61+
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
62+
github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw=
63+
github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
5364
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
5465
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
5566
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
5667
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
5768
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
5869
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
5970
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
60-
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
61-
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
71+
github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 h1:zrbMGy9YXpIeTnGj4EljqMiZsIcE09mmF8XsD5AYOJc=
72+
github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6/go.mod h1:rEKTHC9roVVicUIfZK7DYrdIoM0EOr8mK1Hj5s3JjH0=
73+
github.com/olekukonko/errors v1.2.0 h1:10Zcn4GeV59t/EGqJc8fUjtFT/FuUh5bTMzZ1XwmCRo=
74+
github.com/olekukonko/errors v1.2.0/go.mod h1:ppzxA5jBKcO1vIpCXQ9ZqgDh8iwODz6OXIGKU8r5m4Y=
75+
github.com/olekukonko/ll v0.1.6 h1:lGVTHO+Qc4Qm+fce/2h2m5y9LvqaW+DCN7xW9hsU3uA=
76+
github.com/olekukonko/ll v0.1.6/go.mod h1:NVUmjBb/aCtUpjKk75BhWrOlARz3dqsM+OtszpY4o88=
77+
github.com/olekukonko/tablewriter v1.1.4 h1:ORUMI3dXbMnRlRggJX3+q7OzQFDdvgbN9nVWj1drm6I=
78+
github.com/olekukonko/tablewriter v1.1.4/go.mod h1:+kedxuyTtgoZLwif3P1Em4hARJs+mVnzKxmsCL/C5RY=
6279
github.com/onsi/ginkgo/v2 v2.28.0 h1:Rrf+lVLmtlBIKv6KrIGJCjyY8N36vDVcutbGJkyqjJc=
6380
github.com/onsi/ginkgo/v2 v2.28.0/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo=
6481
github.com/onsi/gomega v1.39.1 h1:1IJLAad4zjPn2PsnhH70V4DKRFlrCzGBNrNaru+Vf28=
@@ -67,9 +84,6 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
6784
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
6885
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
6986
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
70-
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
71-
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
72-
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
7387
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
7488
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
7589
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
@@ -112,6 +126,7 @@ golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
112126
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
113127
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
114128
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
129+
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
115130
golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ=
116131
golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
117132
golang.org/x/term v0.39.0 h1:RclSuaJf32jOqZz74CkPA9qFuVTX7vhLlpfj/IGWlqY=

0 commit comments

Comments
 (0)