github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/pkg/scanners/terraform/parser/option.go (about) 1 package parser 2 3 import ( 4 "github.com/khulnasoft-lab/defsec/pkg/scanners/options" 5 ) 6 7 type ConfigurableTerraformParser interface { 8 options.ConfigurableParser 9 SetTFVarsPaths(...string) 10 SetStopOnHCLError(bool) 11 SetWorkspaceName(string) 12 SetAllowDownloads(bool) 13 } 14 15 type Option func(p ConfigurableTerraformParser) 16 17 func OptionWithTFVarsPaths(paths ...string) options.ParserOption { 18 return func(p options.ConfigurableParser) { 19 if tf, ok := p.(ConfigurableTerraformParser); ok { 20 tf.SetTFVarsPaths(paths...) 21 } 22 } 23 } 24 25 func OptionStopOnHCLError(stop bool) options.ParserOption { 26 return func(p options.ConfigurableParser) { 27 if tf, ok := p.(ConfigurableTerraformParser); ok { 28 tf.SetStopOnHCLError(stop) 29 } 30 } 31 } 32 33 func OptionWithWorkspaceName(workspaceName string) options.ParserOption { 34 return func(p options.ConfigurableParser) { 35 if tf, ok := p.(ConfigurableTerraformParser); ok { 36 tf.SetWorkspaceName(workspaceName) 37 } 38 } 39 } 40 41 func OptionWithDownloads(allowed bool) options.ParserOption { 42 return func(p options.ConfigurableParser) { 43 if tf, ok := p.(ConfigurableTerraformParser); ok { 44 tf.SetAllowDownloads(allowed) 45 } 46 } 47 }