feat(flag): replace '--slow' with '--parallel' (#5572)

Signed-off-by: knqyf263 <knqyf263@gmail.com>
This commit is contained in:
Teppei Fukuda
2023-11-15 15:41:13 +09:00
committed by GitHub
parent 5372067611
commit ac0e327492
31 changed files with 115 additions and 141 deletions

View File

@@ -1,6 +1,8 @@
package flag
import (
"runtime"
"github.com/aquasecurity/trivy/pkg/log"
"github.com/aquasecurity/trivy/pkg/types"
xstrings "github.com/aquasecurity/trivy/pkg/x/strings"
@@ -70,6 +72,13 @@ var (
ConfigName: "scan.slow",
Default: false,
Usage: "scan over time with lower CPU and memory utilization",
Deprecated: true,
}
ParallelFlag = Flag{
Name: "parallel",
ConfigName: "scan.parallel",
Default: 5,
Usage: "number of goroutines enabled for parallel scanning, set 0 to auto-detect parallelism",
}
SBOMSourcesFlag = Flag{
Name: "sbom-sources",
@@ -98,7 +107,8 @@ type ScanFlagGroup struct {
OfflineScan *Flag
Scanners *Flag
FilePatterns *Flag
Slow *Flag
Slow *Flag // deprecated
Parallel *Flag
SBOMSources *Flag
RekorURL *Flag
IncludeDevDeps *Flag
@@ -111,7 +121,7 @@ type ScanOptions struct {
OfflineScan bool
Scanners types.Scanners
FilePatterns []string
Slow bool
Parallel int
SBOMSources []string
RekorURL string
IncludeDevDeps bool
@@ -124,10 +134,11 @@ func NewScanFlagGroup() *ScanFlagGroup {
OfflineScan: &OfflineScanFlag,
Scanners: &ScannersFlag,
FilePatterns: &FilePatternsFlag,
Slow: &SlowFlag,
Parallel: &ParallelFlag,
SBOMSources: &SBOMSourcesFlag,
RekorURL: &RekorURLFlag,
IncludeDevDeps: &IncludeDevDepsFlag,
Slow: &SlowFlag,
}
}
@@ -143,6 +154,7 @@ func (f *ScanFlagGroup) Flags() []*Flag {
f.Scanners,
f.FilePatterns,
f.Slow,
f.Parallel,
f.SBOMSources,
f.RekorURL,
f.IncludeDevDeps,
@@ -155,6 +167,12 @@ func (f *ScanFlagGroup) ToOptions(args []string) (ScanOptions, error) {
target = args[0]
}
parallel := getInt(f.Parallel)
if f.Parallel != nil && parallel == 0 {
log.Logger.Infof("Set '--parallel' to the number of CPUs (%d)", runtime.NumCPU())
parallel = runtime.NumCPU()
}
return ScanOptions{
Target: target,
SkipDirs: getStringSlice(f.SkipDirs),
@@ -162,7 +180,7 @@ func (f *ScanFlagGroup) ToOptions(args []string) (ScanOptions, error) {
OfflineScan: getBool(f.OfflineScan),
Scanners: getUnderlyingStringSlice[types.Scanner](f.Scanners),
FilePatterns: getStringSlice(f.FilePatterns),
Slow: getBool(f.Slow),
Parallel: parallel,
SBOMSources: getStringSlice(f.SBOMSources),
RekorURL: getString(f.RekorURL),
IncludeDevDeps: getBool(f.IncludeDevDeps),