Skip to content

Commit

Permalink
refactor: use log when results array is empty
Browse files Browse the repository at this point in the history
  • Loading branch information
DmitriyLewen committed Jan 29, 2025
1 parent e11221a commit 5f61893
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions pkg/report/table/table.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import (
"slices"
"strings"

"github.com/aquasecurity/trivy/pkg/log"
xstrings "github.com/aquasecurity/trivy/pkg/x/strings"
"github.com/fatih/color"
"github.com/samber/lo"
"golang.org/x/xerrors"
Expand Down Expand Up @@ -80,6 +82,11 @@ func (tw Writer) Write(_ context.Context, report types.Report) error {
}

func (tw Writer) renderSummary(report types.Report) error {
if len(report.Results) == 0 {
tw.showEmptyResultsWarning()
return nil
}

// Fprintln has a bug
if err := tml.Fprintf(tw.Output, "\n<underline><bold>Report Summary</bold></underline>\n\n"+
"Legend:\n"+
Expand Down Expand Up @@ -142,6 +149,34 @@ func (tw Writer) renderSummary(report types.Report) error {
return nil
}

// showEmptyResultsWarning
func (tw Writer) showEmptyResultsWarning() {
resultByFiles := []types.Scanner{
types.VulnerabilityScanner,
types.MisconfigScanner,
}
resultByFindings := []types.Scanner{
types.SecretScanner,
types.LicenseScanner,
}

var warnStrings []string
if scanners := lo.Intersect(resultByFiles, tw.Scanners); len(scanners) > 0 {
warnStrings = append(warnStrings, fmt.Sprintf("Supported files for %s scanner(s) not found",
strings.Join(xstrings.ToStringSlice(scanners), "/")))
}
if scanners := lo.Intersect(resultByFindings, tw.Scanners); len(scanners) > 0 {
warnStrings = append(warnStrings, fmt.Sprintf("No results found for %s scanner(s)",
strings.Join(xstrings.ToStringSlice(scanners), "/")))
}

if len(warnStrings) == 0 {
warnStrings = append(warnStrings, "Scanners are not enabled.")
}

log.WithPrefix("report").Warn(strings.Join(warnStrings, ". "))
}

func (tw Writer) write(result types.Result) {
if result.IsEmpty() && result.Class != types.ClassOSPkg {
return
Expand Down

0 comments on commit 5f61893

Please sign in to comment.