mirror of
https://github.com/aquasecurity/trivy.git
synced 2025-12-23 15:37:50 -08:00
56 lines
1.2 KiB
Go
56 lines
1.2 KiB
Go
package flag
|
|
|
|
import "time"
|
|
|
|
var (
|
|
cloudUpdateCacheFlag = Flag[bool]{
|
|
Name: "update-cache",
|
|
ConfigName: "cloud.update-cache",
|
|
Usage: "Update the cache for the applicable cloud provider instead of using cached results.",
|
|
}
|
|
cloudMaxCacheAgeFlag = Flag[time.Duration]{
|
|
Name: "max-cache-age",
|
|
ConfigName: "cloud.max-cache-age",
|
|
Default: time.Hour * 24,
|
|
Usage: "The maximum age of the cloud cache. Cached data will be required from the cloud provider if it is older than this.",
|
|
}
|
|
)
|
|
|
|
type CloudFlagGroup struct {
|
|
UpdateCache *Flag[bool]
|
|
MaxCacheAge *Flag[time.Duration]
|
|
}
|
|
|
|
type CloudOptions struct {
|
|
MaxCacheAge time.Duration
|
|
UpdateCache bool
|
|
}
|
|
|
|
func NewCloudFlagGroup() *CloudFlagGroup {
|
|
return &CloudFlagGroup{
|
|
UpdateCache: cloudUpdateCacheFlag.Clone(),
|
|
MaxCacheAge: cloudMaxCacheAgeFlag.Clone(),
|
|
}
|
|
}
|
|
|
|
func (f *CloudFlagGroup) Name() string {
|
|
return "Cloud"
|
|
}
|
|
|
|
func (f *CloudFlagGroup) Flags() []Flagger {
|
|
return []Flagger{
|
|
f.UpdateCache,
|
|
f.MaxCacheAge,
|
|
}
|
|
}
|
|
|
|
func (f *CloudFlagGroup) ToOptions() (CloudOptions, error) {
|
|
if err := parseFlags(f); err != nil {
|
|
return CloudOptions{}, err
|
|
}
|
|
return CloudOptions{
|
|
UpdateCache: f.UpdateCache.Value(),
|
|
MaxCacheAge: f.MaxCacheAge.Value(),
|
|
}, nil
|
|
}
|