github.com/devseccon/trivy@v0.47.1-0.20231123133102-bd902a0bd996/pkg/cloud/report/result.go (about)

     1  package report
     2  
     3  import (
     4  	"fmt"
     5  	"io"
     6  
     7  	"github.com/aquasecurity/tml"
     8  	dbTypes "github.com/aquasecurity/trivy-db/pkg/types"
     9  	renderer "github.com/devseccon/trivy/pkg/report/table"
    10  	"github.com/devseccon/trivy/pkg/types"
    11  )
    12  
    13  func writeResultsForARN(report *Report, results types.Results, output io.Writer, service, arn string, severities []dbTypes.Severity) error {
    14  
    15  	// render scan title
    16  	_ = tml.Fprintf(output, "\n<bold>Results for '%s' (%s Account %s)</bold>\n\n", arn, report.Provider, report.AccountID)
    17  
    18  	for _, result := range results {
    19  		var filtered []types.DetectedMisconfiguration
    20  		for _, misconfiguration := range result.Misconfigurations {
    21  			if arn != "" && misconfiguration.CauseMetadata.Resource != arn {
    22  				continue
    23  			}
    24  			if service != "" && misconfiguration.CauseMetadata.Service != service {
    25  				continue
    26  			}
    27  			filtered = append(filtered, misconfiguration)
    28  		}
    29  		if len(filtered) > 0 {
    30  			_, _ = fmt.Fprint(output, renderer.NewMisconfigRenderer(result, severities, false, false, true).Render())
    31  		}
    32  	}
    33  
    34  	return nil
    35  }