github.com/jpreese/tflint@v0.19.2-0.20200908152133-b01686250fb6/cmd/version.go (about) 1 package cmd 2 3 import ( 4 "fmt" 5 "log" 6 7 tfplugin "github.com/terraform-linters/tflint/plugin" 8 "github.com/terraform-linters/tflint/tflint" 9 ) 10 11 func (cli *CLI) printVersion(opts Options) int { 12 fmt.Fprintf(cli.outStream, "TFLint version %s\n", tflint.Version) 13 14 cfg, err := tflint.LoadConfig(opts.Config) 15 if err != nil { 16 log.Printf("[ERROR] Failed to load TFLint config: %s", err) 17 return ExitCodeOK 18 } 19 cfg = cfg.Merge(opts.toConfig()) 20 21 plugin, err := tfplugin.Discovery(cfg) 22 if err != nil { 23 log.Printf("[ERROR] Failed to initialize plugins: %s", err) 24 return ExitCodeOK 25 } 26 defer plugin.Clean() 27 28 for _, ruleset := range plugin.RuleSets { 29 name, err := ruleset.RuleSetName() 30 if err != nil { 31 log.Printf("[ERROR] Failed to get ruleset name: %s", err) 32 continue 33 } 34 version, err := ruleset.RuleSetVersion() 35 if err != nil { 36 log.Printf("[ERROR] Failed to get ruleset version: %s", err) 37 continue 38 } 39 40 fmt.Fprintf(cli.outStream, "+ ruleset.%s (%s)\n", name, version) 41 } 42 43 return ExitCodeOK 44 }