mirror of https://github.com/docker/cli.git
docker ps: always use --quiet, also combined with --format
Previously, the formatter would ignore the quiet option if a custom format was passed; this situation was handled in runPs(), where custom formats would only be applied if the quiet option was not set, but only if the format was set in the CLI's config. This patch updates NewContainerFormat() to do the same, even if a `--format` was passed on the command-line. This is a change in behavior, so may need some discussion; possible alternatives; - produce an error if both `--format` and `--quiet` are passed - print a warning if both are passed (but use the logic from this patch) Before this patch: ```console docker ps --format '{{.Image}}' ubuntu:22.04 alpine docker ps --format '{{.Image}}' --quiet ubuntu:22.04 alpine mkdir -p ~/.docker/ echo '{"psFormat": "{{.Image}}"}' > ~/.docker/config.json docker ps ubuntu:22.04 alpine docker ps --quiet ubuntu:22.04 alpine ``` With this patch applied: ```console docker ps --format '{{.Image}}' ubuntu:22.04 alpine docker ps --format '{{.Image}}' --quiet 40111f61d5c5 482efdf39fac mkdir -p ~/.docker/ echo '{"psFormat": "{{.Image}}"}' > ~/.docker/config.json docker ps ubuntu:22.04 alpine docker ps --quiet 40111f61d5c5 482efdf39fac ``` Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
d49b8ff855
commit
f522905595
|
@ -309,8 +309,21 @@ func TestContainerListWithFormat(t *testing.T) {
|
||||||
}, nil
|
}, nil
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("with format", func(t *testing.T) {
|
||||||
|
cli.OutBuffer().Reset()
|
||||||
cmd := newListCommand(cli)
|
cmd := newListCommand(cli)
|
||||||
cmd.Flags().Set("format", "{{ .Names }} {{ .Image }} {{ .Labels }}")
|
assert.Check(t, cmd.Flags().Set("format", "{{ .Names }} {{ .Image }} {{ .Labels }}"))
|
||||||
assert.NilError(t, cmd.Execute())
|
assert.NilError(t, cmd.Execute())
|
||||||
golden.Assert(t, cli.OutBuffer().String(), "container-list-with-format.golden")
|
golden.Assert(t, cli.OutBuffer().String(), "container-list-with-format.golden")
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("with format and quiet", func(t *testing.T) {
|
||||||
|
cli.OutBuffer().Reset()
|
||||||
|
cmd := newListCommand(cli)
|
||||||
|
assert.Check(t, cmd.Flags().Set("format", "{{ .Names }} {{ .Image }} {{ .Labels }}"))
|
||||||
|
assert.Check(t, cmd.Flags().Set("quiet", "true"))
|
||||||
|
assert.NilError(t, cmd.Execute())
|
||||||
|
golden.Assert(t, cli.OutBuffer().String(), "container-list-quiet.golden")
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
container_id
|
||||||
|
container_id
|
|
@ -55,6 +55,9 @@ ports: {{- pad .Ports 1 0}}
|
||||||
}
|
}
|
||||||
return Format(format)
|
return Format(format)
|
||||||
default: // custom format
|
default: // custom format
|
||||||
|
if quiet {
|
||||||
|
return DefaultQuietFormat
|
||||||
|
}
|
||||||
return Format(source)
|
return Format(source)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -163,7 +163,7 @@ containerID2 ubuntu "" 24 hours ago foobar_bar
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Context{Format: NewContainerFormat("table {{.Image}}", true, false)},
|
Context{Format: NewContainerFormat("table {{.Image}}", true, false)},
|
||||||
"IMAGE\nubuntu\nubuntu\n",
|
"containerID1\ncontainerID2\n",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Context{Format: NewContainerFormat("table", true, false)},
|
Context{Format: NewContainerFormat("table", true, false)},
|
||||||
|
|
Loading…
Reference in New Issue