From 75d8b821ff88df4efb14b28c950ec22a36caaa6c Mon Sep 17 00:00:00 2001 From: Laurence Jones Date: Fri, 24 Feb 2023 13:49:17 +0000 Subject: [PATCH] Explain successful parsers only (#2063) * Add option to filter down explain to successful parsers useful for me who has every collection installed * Altered naming conventions so it makes more sense when reading --- cmd/crowdsec-cli/explain.go | 7 +++++++ pkg/hubtest/parser_assert.go | 7 ++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/cmd/crowdsec-cli/explain.go b/cmd/crowdsec-cli/explain.go index 2158c9979..914e5dc8c 100644 --- a/cmd/crowdsec-cli/explain.go +++ b/cmd/crowdsec-cli/explain.go @@ -50,6 +50,12 @@ func runExplain(cmd *cobra.Command, args []string) error { return err } + opts.ShowNotOkParsers, err = flags.GetBool("only-successful-parsers") + opts.ShowNotOkParsers = !opts.ShowNotOkParsers + if err != nil { + return err + } + crowdsec, err := flags.GetString("crowdsec") if err != nil { return err @@ -182,6 +188,7 @@ tail -n 5 myfile.log | cscli explain --type nginx -f - flags.StringP("type", "t", "", "Type of the acquisition to test") flags.BoolP("verbose", "v", false, "Display individual changes") flags.Bool("failures", false, "Only show failed lines") + flags.Bool("only-successful-parsers", false, "Only show successful parsers") flags.String("crowdsec", "crowdsec", "Path to crowdsec") return cmdExplain diff --git a/pkg/hubtest/parser_assert.go b/pkg/hubtest/parser_assert.go index f3546b0b9..b5d488fbd 100644 --- a/pkg/hubtest/parser_assert.go +++ b/pkg/hubtest/parser_assert.go @@ -299,8 +299,9 @@ func LoadParserDump(filepath string) (*ParserResults, error) { } type DumpOpts struct { - Details bool - SkipOk bool + Details bool + SkipOk bool + ShowNotOkParsers bool } func DumpTree(parser_results ParserResults, bucket_pour BucketPourInfo, opts DumpOpts) { @@ -445,7 +446,7 @@ func DumpTree(parser_results ParserResults, bucket_pour BucketPourInfo, opts Dum if opts.Details { fmt.Print(detailsDisplay) } - } else { + } else if opts.ShowNotOkParsers { fmt.Printf("\t%s\t%s %s %s\n", presep, sep, emoji.RedCircle, parser) }