@@ -8,9 +8,10 @@ import (
88 "strings"
99 "text/template"
1010
11+ "gopkg.in/yaml.v3"
12+
1113 "github.com/scaleway/scaleway-cli/v2/internal/gofields"
1214 "github.com/scaleway/scaleway-cli/v2/internal/human"
13- "gopkg.in/yaml.v3"
1415)
1516
1617// Type defines an formatter format.
@@ -30,6 +31,9 @@ const (
3031 // PrinterTypeHuman defines a human readable formatted formatter.
3132 PrinterTypeHuman = PrinterType ("human" )
3233
34+ // PrinterTypeWide defines a human-readable formatted formatter without shrinking.
35+ PrinterTypeWide = PrinterType ("wide" )
36+
3337 // PrinterTypeTemplate defines a go template to use to format output.
3438 PrinterTypeTemplate = PrinterType ("template" )
3539
@@ -62,6 +66,8 @@ func NewPrinter(config *PrinterConfig) (*Printer, error) {
6266 switch printerName {
6367 case PrinterTypeHuman .String ():
6468 setupHumanPrinter (printer , printerOpt )
69+ case PrinterTypeWide .String ():
70+ setupWidePrinter (printer , printerOpt )
6571 case PrinterTypeJSON .String ():
6672 err := setupJSONPrinter (printer , printerOpt )
6773 if err != nil {
@@ -120,6 +126,11 @@ func setupHumanPrinter(printer *Printer, opts string) {
120126 }
121127}
122128
129+ func setupWidePrinter (printer * Printer , opts string ) {
130+ setupHumanPrinter (printer , opts )
131+ printer .printerType = PrinterTypeWide
132+ }
133+
123134type Printer struct {
124135 printerType PrinterType
125136 stdout io.Writer
@@ -146,6 +157,8 @@ func (p *Printer) Print(data interface{}, opt *human.MarshalOpt) error {
146157 switch p .printerType {
147158 case PrinterTypeHuman :
148159 err = p .printHuman (data , opt )
160+ case PrinterTypeWide :
161+ err = p .printWide (data , opt )
149162 case PrinterTypeJSON :
150163 err = p .printJSON (data )
151164 case PrinterTypeYAML :
@@ -212,6 +225,17 @@ func (p *Printer) printHuman(data interface{}, opt *human.MarshalOpt) error {
212225 return err
213226}
214227
228+ func (p * Printer ) printWide (data interface {}, opt * human.MarshalOpt ) error {
229+ if opt != nil {
230+ opt .DisableShrinking = true
231+ } else {
232+ opt = & human.MarshalOpt {
233+ DisableShrinking : true ,
234+ }
235+ }
236+ return p .printHuman (data , opt )
237+ }
238+
215239func (p * Printer ) printJSON (data interface {}) error {
216240 _ , implementMarshaler := data .(json.Marshaler )
217241 err , isError := data .(error )
0 commit comments