@@ -25,7 +25,6 @@ const (
2525
2626type misconfigRenderer struct {
2727 w * bytes.Buffer
28- result types.Result
2928 severities []dbTypes.Severity
3029 trace bool
3130 includeNonFailures bool
@@ -34,7 +33,7 @@ type misconfigRenderer struct {
3433 renderCause []ftypes.ConfigType
3534}
3635
37- func NewMisconfigRenderer (result types. Result , severities []dbTypes.Severity , trace , includeNonFailures , ansi bool , renderCause []ftypes.ConfigType ) * misconfigRenderer {
36+ func NewMisconfigRenderer (buf * bytes. Buffer , severities []dbTypes.Severity , trace , includeNonFailures , ansi bool , renderCause []ftypes.ConfigType ) * misconfigRenderer {
3837 width , _ , err := term .GetSize (0 )
3938 if err != nil || width == 0 {
4039 width = 40
@@ -44,8 +43,7 @@ func NewMisconfigRenderer(result types.Result, severities []dbTypes.Severity, tr
4443 }
4544
4645 return & misconfigRenderer {
47- w : bytes .NewBuffer ([]byte {}),
48- result : result ,
46+ w : buf ,
4947 severities : severities ,
5048 trace : trace ,
5149 includeNonFailures : includeNonFailures ,
@@ -55,36 +53,36 @@ func NewMisconfigRenderer(result types.Result, severities []dbTypes.Severity, tr
5553 }
5654}
5755
58- func (r * misconfigRenderer ) Render () string {
56+ func (r * misconfigRenderer ) Render (result types. Result ) {
5957 // Trivy doesn't currently support showing suppressed misconfigs
6058 // So just skip this result
61- if len (r . result .Misconfigurations ) == 0 {
62- return ""
59+ if len (result .Misconfigurations ) == 0 {
60+ return
6361 }
64- target := fmt .Sprintf ("%s (%s)" , r . result .Target , r . result .Type )
62+ target := fmt .Sprintf ("%s (%s)" , result .Target , result .Type )
6563 RenderTarget (r .w , target , r .ansi )
6664
67- total , summaries := summarize (r .severities , r .countSeverities ())
65+ total , summaries := summarize (r .severities , r .countSeverities (result . Misconfigurations ))
6866
69- summary := r . result .MisconfSummary
67+ summary := result .MisconfSummary
7068 r .printf ("Tests: %d (SUCCESSES: %d, FAILURES: %d)\n " ,
7169 summary .Successes + summary .Failures , summary .Successes , summary .Failures )
7270 r .printf ("Failures: %d (%s)\n \n " , total , strings .Join (summaries , ", " ))
7371
74- for _ , m := range r . result .Misconfigurations {
75- r .renderSingle (m )
72+ for _ , m := range result .Misconfigurations {
73+ r .renderSingle (result . Target , result . Type , m )
7674 }
7775
7876 // For debugging
7977 if r .trace {
80- r .outputTrace ()
78+ r .outputTrace (result . Target , result . Misconfigurations )
8179 }
82- return r . w . String ()
80+ return
8381}
8482
85- func (r * misconfigRenderer ) countSeverities () map [string ]int {
83+ func (r * misconfigRenderer ) countSeverities (misconfigs []types. DetectedMisconfiguration ) map [string ]int {
8684 severityCount := make (map [string ]int )
87- for _ , misconf := range r . result . Misconfigurations {
85+ for _ , misconf := range misconfigs {
8886 if misconf .Status == types .MisconfStatusFailure {
8987 severityCount [misconf .Severity ]++
9088 }
@@ -110,10 +108,10 @@ func (r *misconfigRenderer) printSingleDivider() {
110108 r .printf ("<dim>%s\r \n " , strings .Repeat ("─" , r .width ))
111109}
112110
113- func (r * misconfigRenderer ) renderSingle (misconf types.DetectedMisconfiguration ) {
111+ func (r * misconfigRenderer ) renderSingle (target string , typ ftypes. TargetType , misconf types.DetectedMisconfiguration ) {
114112 r .renderSummary (misconf )
115- r .renderCode (misconf )
116- r .renderMisconfCause (misconf )
113+ r .renderCode (target , misconf )
114+ r .renderMisconfCause (typ , misconf )
117115 r .printf ("\r \n \r \n " )
118116}
119117
@@ -160,7 +158,7 @@ func (r *misconfigRenderer) renderSummary(misconf types.DetectedMisconfiguration
160158 r .printSingleDivider ()
161159}
162160
163- func (r * misconfigRenderer ) renderCode (misconf types.DetectedMisconfiguration ) {
161+ func (r * misconfigRenderer ) renderCode (target string , misconf types.DetectedMisconfiguration ) {
164162 // highlight code if we can...
165163 if lines := misconf .CauseMetadata .Code .Lines ; len (lines ) > 0 {
166164
@@ -171,7 +169,7 @@ func (r *misconfigRenderer) renderCode(misconf types.DetectedMisconfiguration) {
171169 lineInfo = tml .Sprintf ("%s<blue>-%d" , lineInfo , misconf .CauseMetadata .EndLine )
172170 }
173171 }
174- r .printf (" <blue>%s%s\r \n " , r . result . Target , lineInfo )
172+ r .printf (" <blue>%s%s\r \n " , target , lineInfo )
175173 for i , occ := range misconf .CauseMetadata .Occurrences {
176174 lineInfo := fmt .Sprintf ("%d-%d" , occ .Location .StartLine , occ .Location .EndLine )
177175 if occ .Location .StartLine >= occ .Location .EndLine {
@@ -218,8 +216,8 @@ func (r *misconfigRenderer) renderCode(misconf types.DetectedMisconfiguration) {
218216 }
219217}
220218
221- func (r * misconfigRenderer ) renderMisconfCause (misconf types.DetectedMisconfiguration ) {
222- if ! slices .Contains (r .renderCause , r . result . Type ) {
219+ func (r * misconfigRenderer ) renderMisconfCause (typ ftypes. TargetType , misconf types.DetectedMisconfiguration ) {
220+ if ! slices .Contains (r .renderCause , typ ) {
223221 return
224222 }
225223
@@ -239,12 +237,12 @@ func (r *misconfigRenderer) renderMisconfCause(misconf types.DetectedMisconfigur
239237 r .printSingleDivider ()
240238}
241239
242- func (r * misconfigRenderer ) outputTrace () {
240+ func (r * misconfigRenderer ) outputTrace (target string , misconfigs []types. DetectedMisconfiguration ) {
243241 blue := color .New (color .FgBlue ).SprintFunc ()
244242 green := color .New (color .FgGreen ).SprintfFunc ()
245243 red := color .New (color .FgRed ).SprintfFunc ()
246244
247- for _ , misconf := range r . result . Misconfigurations {
245+ for _ , misconf := range misconfigs {
248246 if len (misconf .Traces ) == 0 {
249247 continue
250248 }
@@ -255,7 +253,7 @@ func (r *misconfigRenderer) outputTrace() {
255253 }
256254
257255 r .println (c ("\n ID: %s" , misconf .ID ))
258- r .println (c ("File: %s" , r . result . Target ))
256+ r .println (c ("File: %s" , target ))
259257 r .println (c ("Namespace: %s" , misconf .Namespace ))
260258 r .println (c ("Query: %s" , misconf .Query ))
261259 r .println (c ("Message: %s" , misconf .Message ))
0 commit comments