From a01bb506c125aabfb5d1c9ea3bc598683c400b89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=85man?= Date: Wed, 30 Jul 2025 17:08:18 +0200 Subject: [PATCH] Implement possibility to hide details about changes --- cmd/commands.go | 4 +++- internal/parser/parser.go | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/cmd/commands.go b/cmd/commands.go index c7b459b..32cf749 100644 --- a/cmd/commands.go +++ b/cmd/commands.go @@ -24,6 +24,7 @@ var ( useJson bool metrics bool prettyJSON bool + hideDetails bool ) func init() { @@ -34,6 +35,7 @@ func init() { summarizeCmd.Flags().BoolVarP(&useJson, "json", "j", false, "Use JSON output") summarizeCmd.Flags().BoolVarP(&metrics, "metrics", "s", false, "Output metrics") summarizeCmd.Flags().BoolVarP(&prettyJSON, "pretty-json", "p", false, "Pretty JSON output") + summarizeCmd.Flags().BoolVarP(&hideDetails, "hide-details", "d", false, "Hide details of changes") } // summarizeCmd will parse the tf plan output json to scrape created|updated|deleted resources in a clear outout @@ -57,7 +59,7 @@ var summarizeCmd = &cobra.Command{ panic(err) } - parser.Parser(output, showTags, showUnchanged, compact, useMarkdown, useJson, metrics, prettyJSON) + parser.Parser(output, showTags, showUnchanged, compact, useMarkdown, useJson, metrics, prettyJSON, hideDetails) }, } diff --git a/internal/parser/parser.go b/internal/parser/parser.go index f2edd6e..f7ae535 100644 --- a/internal/parser/parser.go +++ b/internal/parser/parser.go @@ -23,7 +23,7 @@ var ( resourcesList = make(map[string][]string) ) -func Parser(output []byte, showTags, showUnchanged, compact, useMarkdown bool, useJson bool, metrics bool, prettyJSON bool) { +func Parser(output []byte, showTags, showUnchanged, compact, useMarkdown bool, useJson bool, metrics bool, prettyJSON bool, hideDetails bool) { var data tfjson.Plan if err := json.Unmarshal(output, &data); err != nil { fmt.Printf("Error unmarshalling plan: %v\n", err) @@ -31,13 +31,13 @@ func Parser(output []byte, showTags, showUnchanged, compact, useMarkdown bool, u } for _, resourceChange := range data.ResourceChanges { - processResourceChange(resourceChange, showTags) + processResourceChange(resourceChange, showTags, hideDetails) } PrintPlanSummary(showTags, showUnchanged, compact, useMarkdown, useJson, metrics, prettyJSON) } -func processResourceChange(resourceChange *tfjson.ResourceChange, showTags bool) { +func processResourceChange(resourceChange *tfjson.ResourceChange, showTags bool, hideDetails bool) { isUpdate := contains(resourceChange.Change.Actions, tfjson.ActionUpdate) if isUpdate { @@ -60,7 +60,7 @@ func processResourceChange(resourceChange *tfjson.ResourceChange, showTags bool) } detailedChanges := processDetailedChanges(resourceChange) - if detailedChanges != "" { + if detailedChanges != "" && !hideDetails { addActionToResourceListWithDetails(resourceChange.Change.Actions, resourceChange.Address, detailedChanges) } else { addActionToResourceList(resourceChange.Change.Actions, resourceChange.Address)