cli/command/plugin: deprecate NewFormat, FormatWrite
It's part of the presentation logic of the cli, and only used internally. We can consider providing utilities for these, but better as part of separate packages. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
@ -21,7 +21,14 @@ enabled: {{.Enabled}}
|
||||
)
|
||||
|
||||
// NewFormat returns a Format for rendering using a plugin Context
|
||||
//
|
||||
// Deprecated: this function was only used internally and will be removed in the next release.
|
||||
func NewFormat(source string, quiet bool) formatter.Format {
|
||||
return newFormat(source, quiet)
|
||||
}
|
||||
|
||||
// newFormat returns a Format for rendering using a pluginContext.
|
||||
func newFormat(source string, quiet bool) formatter.Format {
|
||||
switch source {
|
||||
case formatter.TableFormatKey:
|
||||
if quiet {
|
||||
@ -38,10 +45,17 @@ func NewFormat(source string, quiet bool) formatter.Format {
|
||||
}
|
||||
|
||||
// FormatWrite writes the context
|
||||
func FormatWrite(ctx formatter.Context, plugins []*plugin.Plugin) error {
|
||||
//
|
||||
// Deprecated: this function was only used internally and will be removed in the next release.
|
||||
func FormatWrite(fmtCtx formatter.Context, plugins []*plugin.Plugin) error {
|
||||
return formatWrite(fmtCtx, plugins)
|
||||
}
|
||||
|
||||
// formatWrite writes the context
|
||||
func formatWrite(fmtCtx formatter.Context, plugins []*plugin.Plugin) error {
|
||||
render := func(format func(subContext formatter.SubContext) error) error {
|
||||
for _, p := range plugins {
|
||||
pluginCtx := &pluginContext{trunc: ctx.Trunc, p: *p}
|
||||
pluginCtx := &pluginContext{trunc: fmtCtx.Trunc, p: *p}
|
||||
if err := format(pluginCtx); err != nil {
|
||||
return err
|
||||
}
|
||||
@ -56,7 +70,7 @@ func FormatWrite(ctx formatter.Context, plugins []*plugin.Plugin) error {
|
||||
"Enabled": enabledHeader,
|
||||
"PluginReference": formatter.ImageHeader,
|
||||
}
|
||||
return ctx.Write(&pluginCtx, render)
|
||||
return fmtCtx.Write(&pluginCtx, render)
|
||||
}
|
||||
|
||||
type pluginContext struct {
|
||||
|
||||
@ -86,7 +86,7 @@ func TestPluginContextWrite(t *testing.T) {
|
||||
},
|
||||
{
|
||||
doc: "table format",
|
||||
context: formatter.Context{Format: NewFormat("table", false)},
|
||||
context: formatter.Context{Format: newFormat("table", false)},
|
||||
expected: `ID NAME DESCRIPTION ENABLED
|
||||
pluginID1 foobar_baz description 1 true
|
||||
pluginID2 foobar_bar description 2 false
|
||||
@ -94,14 +94,14 @@ pluginID2 foobar_bar description 2 false
|
||||
},
|
||||
{
|
||||
doc: "table format, quiet",
|
||||
context: formatter.Context{Format: NewFormat("table", true)},
|
||||
context: formatter.Context{Format: newFormat("table", true)},
|
||||
expected: `pluginID1
|
||||
pluginID2
|
||||
`,
|
||||
},
|
||||
{
|
||||
doc: "table format name col",
|
||||
context: formatter.Context{Format: NewFormat("table {{.Name}}", false)},
|
||||
context: formatter.Context{Format: newFormat("table {{.Name}}", false)},
|
||||
expected: `NAME
|
||||
foobar_baz
|
||||
foobar_bar
|
||||
@ -109,7 +109,7 @@ foobar_bar
|
||||
},
|
||||
{
|
||||
doc: "table format name col, quiet",
|
||||
context: formatter.Context{Format: NewFormat("table {{.Name}}", true)},
|
||||
context: formatter.Context{Format: newFormat("table {{.Name}}", true)},
|
||||
expected: `NAME
|
||||
foobar_baz
|
||||
foobar_bar
|
||||
@ -117,7 +117,7 @@ foobar_bar
|
||||
},
|
||||
{
|
||||
doc: "raw format",
|
||||
context: formatter.Context{Format: NewFormat("raw", false)},
|
||||
context: formatter.Context{Format: newFormat("raw", false)},
|
||||
expected: `plugin_id: pluginID1
|
||||
name: foobar_baz
|
||||
description: description 1
|
||||
@ -132,14 +132,14 @@ enabled: false
|
||||
},
|
||||
{
|
||||
doc: "raw format, quiet",
|
||||
context: formatter.Context{Format: NewFormat("raw", true)},
|
||||
context: formatter.Context{Format: newFormat("raw", true)},
|
||||
expected: `plugin_id: pluginID1
|
||||
plugin_id: pluginID2
|
||||
`,
|
||||
},
|
||||
{
|
||||
doc: "custom format",
|
||||
context: formatter.Context{Format: NewFormat("{{.Name}}", false)},
|
||||
context: formatter.Context{Format: newFormat("{{.Name}}", false)},
|
||||
expected: `foobar_baz
|
||||
foobar_bar
|
||||
`,
|
||||
@ -156,7 +156,7 @@ foobar_bar
|
||||
var out bytes.Buffer
|
||||
tc.context.Output = &out
|
||||
|
||||
err := FormatWrite(tc.context, plugins)
|
||||
err := formatWrite(tc.context, plugins)
|
||||
if err != nil {
|
||||
assert.Error(t, err, tc.expected)
|
||||
} else {
|
||||
@ -177,7 +177,7 @@ func TestPluginContextWriteJSON(t *testing.T) {
|
||||
}
|
||||
|
||||
out := bytes.NewBufferString("")
|
||||
err := FormatWrite(formatter.Context{Format: "{{json .}}", Output: out}, plugins)
|
||||
err := formatWrite(formatter.Context{Format: "{{json .}}", Output: out}, plugins)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -196,7 +196,7 @@ func TestPluginContextWriteJSONField(t *testing.T) {
|
||||
{ID: "pluginID2", Name: "foobar_bar"},
|
||||
}
|
||||
out := bytes.NewBufferString("")
|
||||
err := FormatWrite(formatter.Context{Format: "{{json .ID}}", Output: out}, plugins)
|
||||
err := formatWrite(formatter.Context{Format: "{{json .ID}}", Output: out}, plugins)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@ -66,8 +66,8 @@ func runList(ctx context.Context, dockerCli command.Cli, options listOptions) er
|
||||
|
||||
pluginsCtx := formatter.Context{
|
||||
Output: dockerCli.Out(),
|
||||
Format: NewFormat(format, options.quiet),
|
||||
Format: newFormat(format, options.quiet),
|
||||
Trunc: !options.noTrunc,
|
||||
}
|
||||
return FormatWrite(pluginsCtx, plugins)
|
||||
return formatWrite(pluginsCtx, plugins)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user