Files
trivy/pkg/flag/clean_flags.go
Teppei Fukuda 8d0ae1f5de feat!: add clean subcommand (#6993)
Signed-off-by: knqyf263 <knqyf263@gmail.com>
Co-authored-by: DmitriyLewen <91113035+DmitriyLewen@users.noreply.github.com>
Co-authored-by: DmitriyLewen <dmitriy.lewen@smartforce.io>
2024-06-25 09:06:27 +00:00

85 lines
2.0 KiB
Go

package flag
var (
CleanAll = Flag[bool]{
Name: "all",
Shorthand: "a",
ConfigName: "clean.all",
Usage: "remove all caches",
}
CleanScanCache = Flag[bool]{
Name: "scan-cache",
ConfigName: "clean.scan-cache",
Usage: "remove scan cache (container and VM image analysis results)",
}
CleanVulnerabilityDB = Flag[bool]{
Name: "vuln-db",
ConfigName: "clean.vuln-db",
Usage: "remove vulnerability database",
}
CleanJavaDB = Flag[bool]{
Name: "java-db",
ConfigName: "clean.java-db",
Usage: "remove Java database",
}
CleanChecksBundle = Flag[bool]{
Name: "checks-bundle",
ConfigName: "clean.checks-bundle",
Usage: "remove checks bundle",
}
)
type CleanFlagGroup struct {
CleanAll *Flag[bool]
CleanVulnerabilityDB *Flag[bool]
CleanJavaDB *Flag[bool]
CleanChecksBundle *Flag[bool]
CleanScanCache *Flag[bool]
}
type CleanOptions struct {
CleanAll bool
CleanVulnerabilityDB bool
CleanJavaDB bool
CleanChecksBundle bool
CleanScanCache bool
}
func NewCleanFlagGroup() *CleanFlagGroup {
return &CleanFlagGroup{
CleanAll: CleanAll.Clone(),
CleanVulnerabilityDB: CleanVulnerabilityDB.Clone(),
CleanJavaDB: CleanJavaDB.Clone(),
CleanChecksBundle: CleanChecksBundle.Clone(),
CleanScanCache: CleanScanCache.Clone(),
}
}
func (fg *CleanFlagGroup) Name() string {
return "Clean"
}
func (fg *CleanFlagGroup) Flags() []Flagger {
return []Flagger{
fg.CleanAll,
fg.CleanVulnerabilityDB,
fg.CleanJavaDB,
fg.CleanChecksBundle,
fg.CleanScanCache,
}
}
func (fg *CleanFlagGroup) ToOptions() (CleanOptions, error) {
if err := parseFlags(fg); err != nil {
return CleanOptions{}, err
}
return CleanOptions{
CleanAll: fg.CleanAll.Value(),
CleanVulnerabilityDB: fg.CleanVulnerabilityDB.Value(),
CleanJavaDB: fg.CleanJavaDB.Value(),
CleanChecksBundle: fg.CleanChecksBundle.Value(),
CleanScanCache: fg.CleanScanCache.Value(),
}, nil
}