From b9c3a43f29718073136b8cc42058595ce5238eb1 Mon Sep 17 00:00:00 2001 From: Francesco Ciocchetti Date: Thu, 13 Jun 2024 10:59:59 +0200 Subject: [PATCH 1/2] Add flag to pretty print json patch --- main.go | 3 ++- pkg/differ/differ.go | 20 ++++++++++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index 879ad1e..5ad5e9e 100644 --- a/main.go +++ b/main.go @@ -20,6 +20,7 @@ var ( kubeConfig = flag.String("kubeconfig", "", "Kube config location") context = flag.String("context", "", "Kube config context") namespace = flag.String("namespace", "", "Limit to namespace") + pretty = flag.Bool("pretty", false, "Pretty Print json") ) func main() { @@ -52,7 +53,7 @@ func mainErr() error { watcher.MatchName(arg) } - differ, err := differ.New(clients) + differ, err := differ.New(clients, pretty) if err != nil { return err } diff --git a/pkg/differ/differ.go b/pkg/differ/differ.go index 05f9677..da465a6 100644 --- a/pkg/differ/differ.go +++ b/pkg/differ/differ.go @@ -15,9 +15,10 @@ import ( type Differ struct { cache map[string]runtime.Object mapper meta.RESTMapper + prettyPrint bool } -func New(clients *clients.Clients) (*Differ, error) { +func New(clients *clients.Clients, pretty *bool) (*Differ, error) { mapper, err := clients.ToRESTMapper() if err != nil { return nil, err @@ -25,6 +26,7 @@ func New(clients *clients.Clients) (*Differ, error) { return &Differ{ cache: map[string]runtime.Object{}, mapper: mapper, + prettyPrint: *pretty, }, nil } @@ -67,7 +69,21 @@ func (d *Differ) Print(obj runtime.Object) error { } if string(patch) != "{}" { - fmt.Printf("%s %s %s\n", meta.GetResourceVersion(), printKey, patch) + patchToPrint := patch + + if d.prettyPrint { + + var result map[string]interface{} + if err := json.Unmarshal([]byte(patch), &result); err != nil { + return err + } + + patchToPrint, err = json.MarshalIndent(result, "", " ") + if err != nil { + return err + } + } + fmt.Printf("%s %s %s\n", meta.GetResourceVersion(), printKey, patchToPrint) } return nil From b3ba4b938df86fb2eb5a1ec1e6ed4e2947c9f79f Mon Sep 17 00:00:00 2001 From: Francesco Ciocchetti Date: Thu, 13 Jun 2024 11:01:33 +0200 Subject: [PATCH 2/2] FMT --- pkg/differ/differ.go | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/pkg/differ/differ.go b/pkg/differ/differ.go index da465a6..2b5d90b 100644 --- a/pkg/differ/differ.go +++ b/pkg/differ/differ.go @@ -13,8 +13,8 @@ import ( ) type Differ struct { - cache map[string]runtime.Object - mapper meta.RESTMapper + cache map[string]runtime.Object + mapper meta.RESTMapper prettyPrint bool } @@ -24,8 +24,8 @@ func New(clients *clients.Clients, pretty *bool) (*Differ, error) { return nil, err } return &Differ{ - cache: map[string]runtime.Object{}, - mapper: mapper, + cache: map[string]runtime.Object{}, + mapper: mapper, prettyPrint: *pretty, }, nil } @@ -69,20 +69,20 @@ func (d *Differ) Print(obj runtime.Object) error { } if string(patch) != "{}" { - patchToPrint := patch + patchToPrint := patch - if d.prettyPrint { + if d.prettyPrint { - var result map[string]interface{} - if err := json.Unmarshal([]byte(patch), &result); err != nil { - return err - } + var result map[string]interface{} + if err := json.Unmarshal([]byte(patch), &result); err != nil { + return err + } - patchToPrint, err = json.MarshalIndent(result, "", " ") - if err != nil { - return err - } - } + patchToPrint, err = json.MarshalIndent(result, "", " ") + if err != nil { + return err + } + } fmt.Printf("%s %s %s\n", meta.GetResourceVersion(), printKey, patchToPrint) }