From ce474788fd9bcecdb1cd6730fecd16e5d8840ae5 Mon Sep 17 00:00:00 2001 From: Jhon Honce Date: Mon, 7 Dec 2020 15:34:14 -0700 Subject: Restore json format for fields as well as whole structs * Add template func to inspect template processing * Added test using repro from #8444 Fixes #8444 Signed-off-by: Jhon Honce --- cmd/podman/inspect/inspect.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'cmd/podman/inspect/inspect.go') diff --git a/cmd/podman/inspect/inspect.go b/cmd/podman/inspect/inspect.go index 13f36ebbd..cc48b7ae4 100644 --- a/cmd/podman/inspect/inspect.go +++ b/cmd/podman/inspect/inspect.go @@ -1,6 +1,7 @@ package inspect import ( + "bytes" "context" "encoding/json" // due to a bug in json-iterator it cannot be used here "fmt" @@ -245,7 +246,15 @@ func printJSON(data []interface{}) error { } func printTmpl(typ, row string, data []interface{}) error { - t, err := template.New(typ + " inspect").Parse(row) + t, err := template.New(typ + " inspect").Funcs(map[string]interface{}{ + "json": func(v interface{}) string { + b := &bytes.Buffer{} + e := registry.JSONLibrary().NewEncoder(b) + e.SetEscapeHTML(false) + _ = e.Encode(v) + return strings.TrimSpace(b.String()) + }, + }).Parse(row) if err != nil { return err } -- cgit v1.2.3-54-g00ecf