From 80b27f5d108d0af811e48898fd525539d1d2eb98 Mon Sep 17 00:00:00 2001 From: ahmed Date: Wed, 18 Jan 2023 11:54:16 -0500 Subject: [PATCH] Updated stdout to print results in alphabetical order for consistent output --- pkg/output/plain.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/pkg/output/plain.go b/pkg/output/plain.go index a8284d8981e1..70b1cd3e76f7 100644 --- a/pkg/output/plain.go +++ b/pkg/output/plain.go @@ -3,10 +3,13 @@ package output import ( "encoding/json" "fmt" + "sort" "strings" "github.com/fatih/color" "github.com/sirupsen/logrus" + "golang.org/x/text/cases" + "golang.org/x/text/language" "github.com/trufflesecurity/trufflehog/v3/pkg/detectors" "github.com/trufflesecurity/trufflehog/v3/pkg/pb/source_metadatapb" @@ -43,11 +46,20 @@ func PrintPlainOutput(r *detectors.ResultWithMetadata) { printer.Printf("Detector Type: %s\n", out.DetectorType) printer.Printf("Decoder Type: %s\n", out.DecoderType) printer.Printf("Raw result: %s\n", whitePrinter.Sprint(out.Raw)) + + var aggregateData = make(map[string]interface{}) + var aggregateDataKeys []string + for _, data := range meta { for k, v := range data { - printer.Printf("%s: %v\n", strings.Title(k), v) + aggregateDataKeys = append(aggregateDataKeys, k) + aggregateData[k] = v } } + sort.Strings(aggregateDataKeys) + for _, k := range aggregateDataKeys { + printer.Printf("%s: %v\n", cases.Title(language.AmericanEnglish).String(k), aggregateData[k]) + } fmt.Println("") }