mirror of
https://github.com/aquasecurity/trivy.git
synced 2025-12-22 23:26:39 -08:00
68 lines
1.6 KiB
Go
68 lines
1.6 KiB
Go
package parser
|
|
|
|
import (
|
|
"io/fs"
|
|
|
|
"github.com/aquasecurity/trivy/pkg/iac/scanners/options"
|
|
)
|
|
|
|
type ConfigurableTerraformParser interface {
|
|
options.ConfigurableParser
|
|
SetTFVarsPaths(...string)
|
|
SetStopOnHCLError(bool)
|
|
SetWorkspaceName(string)
|
|
SetAllowDownloads(bool)
|
|
SetSkipCachedModules(bool)
|
|
SetConfigsFS(fsys fs.FS)
|
|
}
|
|
|
|
type Option func(p ConfigurableTerraformParser)
|
|
|
|
func OptionWithTFVarsPaths(paths ...string) options.ParserOption {
|
|
return func(p options.ConfigurableParser) {
|
|
if tf, ok := p.(ConfigurableTerraformParser); ok {
|
|
tf.SetTFVarsPaths(paths...)
|
|
}
|
|
}
|
|
}
|
|
|
|
func OptionStopOnHCLError(stop bool) options.ParserOption {
|
|
return func(p options.ConfigurableParser) {
|
|
if tf, ok := p.(ConfigurableTerraformParser); ok {
|
|
tf.SetStopOnHCLError(stop)
|
|
}
|
|
}
|
|
}
|
|
|
|
func OptionWithWorkspaceName(workspaceName string) options.ParserOption {
|
|
return func(p options.ConfigurableParser) {
|
|
if tf, ok := p.(ConfigurableTerraformParser); ok {
|
|
tf.SetWorkspaceName(workspaceName)
|
|
}
|
|
}
|
|
}
|
|
|
|
func OptionWithDownloads(allowed bool) options.ParserOption {
|
|
return func(p options.ConfigurableParser) {
|
|
if tf, ok := p.(ConfigurableTerraformParser); ok {
|
|
tf.SetAllowDownloads(allowed)
|
|
}
|
|
}
|
|
}
|
|
|
|
func OptionWithSkipCachedModules(b bool) options.ParserOption {
|
|
return func(p options.ConfigurableParser) {
|
|
if tf, ok := p.(ConfigurableTerraformParser); ok {
|
|
tf.SetSkipCachedModules(b)
|
|
}
|
|
}
|
|
}
|
|
|
|
func OptionWithConfigsFS(fsys fs.FS) options.ParserOption {
|
|
return func(s options.ConfigurableParser) {
|
|
if p, ok := s.(ConfigurableTerraformParser); ok {
|
|
p.SetConfigsFS(fsys)
|
|
}
|
|
}
|
|
}
|