diff options
author | Paul Holzinger <pholzing@redhat.com> | 2022-09-08 12:48:28 +0200 |
---|---|---|
committer | Paul Holzinger <pholzing@redhat.com> | 2022-09-13 10:33:14 +0200 |
commit | e5389e98f78294f404ba611fc0d6a6396e8ca6f0 (patch) | |
tree | bf53767ee89bb93f047a77dc68a2268940807115 /cmd | |
parent | 1acebdda371ae84c4354de0b6eff22e9e70f31fe (diff) | |
download | podman-e5389e98f78294f404ba611fc0d6a6396e8ca6f0.tar.gz podman-e5389e98f78294f404ba611fc0d6a6396e8ca6f0.tar.bz2 podman-e5389e98f78294f404ba611fc0d6a6396e8ca6f0.zip |
podman info: use report.Formatter over Template
Currently the podman command --format output code uses a mix of
report.Formatter and report.Template.
I patched report.Formatter to correctly handle newlines[1]. Since we
cannot fix this with report.Template we have to migrate all users to
report.Formatter. This ensures consistent behavior for all commands.
This change does not change the output.
[1] https://github.com/containers/common/pull/1146
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/podman/system/info.go | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/cmd/podman/system/info.go b/cmd/podman/system/info.go index 296fa4def..9613d5e56 100644 --- a/cmd/podman/system/info.go +++ b/cmd/podman/system/info.go @@ -3,7 +3,6 @@ package system import ( "fmt" "os" - "text/template" "github.com/containers/common/pkg/completion" "github.com/containers/common/pkg/report" @@ -86,14 +85,16 @@ func info(cmd *cobra.Command, args []string) error { } fmt.Println(string(b)) case cmd.Flags().Changed("format"): - // Cannot use report.New() as it enforces {{range .}} for OriginUser templates - tmpl := template.New(cmd.Name()).Funcs(template.FuncMap(report.DefaultFuncs)) - inFormat = report.NormalizeFormat(inFormat) - tmpl, err := tmpl.Parse(inFormat) + rpt := report.New(os.Stdout, cmd.Name()) + defer rpt.Flush() + + // Use OriginUnknown so it does not add an extra range since it + // will only be called for a single element and not a slice. + rpt, err = rpt.Parse(report.OriginUnknown, inFormat) if err != nil { return err } - return tmpl.Execute(os.Stdout, info) + return rpt.Execute(info) default: b, err := yaml.Marshal(info) if err != nil { |