podman machine 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>
This commit is contained in:
Paul Holzinger
2022-09-08 13:48:37 +02:00
parent e5389e98f7
commit 0c21dcf70c
2 changed files with 7 additions and 6 deletions

View File

@ -5,7 +5,6 @@ package machine
import ( import (
"fmt" "fmt"
"html/template"
"os" "os"
"runtime" "runtime"
@ -75,13 +74,16 @@ func info(cmd *cobra.Command, args []string) error {
} }
fmt.Println(string(b)) fmt.Println(string(b))
case cmd.Flags().Changed("format"): case cmd.Flags().Changed("format"):
tmpl := template.New(cmd.Name()).Funcs(template.FuncMap(report.DefaultFuncs)) rpt := report.New(os.Stdout, cmd.Name())
inFormat = report.NormalizeFormat(inFormat) defer rpt.Flush()
tmpl, err := tmpl.Parse(inFormat)
// 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 { if err != nil {
return err return err
} }
return tmpl.Execute(os.Stdout, info) return rpt.Execute(info)
default: default:
b, err := yaml.Marshal(info) b, err := yaml.Marshal(info)
if err != nil { if err != nil {

View File

@ -20,7 +20,6 @@ function teardown() {
# remove the entire lines, except for pod-inspect, just remove the SKIP # remove the entire lines, except for pod-inspect, just remove the SKIP
# but leave "mypod") # but leave "mypod")
extra_args_table=" extra_args_table="
machine info | SKIP
version | SKIP version | SKIP
history | $IMAGE history | $IMAGE