mirror of
https://github.com/aquasecurity/trivy.git
synced 2025-12-23 15:37:50 -08:00
feat(flag): replace '--slow' with '--parallel' (#5572)
Signed-off-by: knqyf263 <knqyf263@gmail.com>
This commit is contained in:
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user