github.com/jpreese/tflint@v0.19.2-0.20200908152133-b01686250fb6/rules/awsrules/generator/main.go (about) 1 package main 2 3 import ( 4 "bufio" 5 "fmt" 6 "os" 7 "path/filepath" 8 "runtime" 9 "strings" 10 11 utils "github.com/terraform-linters/tflint/rules/awsrules/generator-utils" 12 ) 13 14 type metadata struct { 15 RuleName string 16 RuleNameCC string 17 } 18 19 func main() { 20 buf := bufio.NewReader(os.Stdin) 21 fmt.Print("Rule name? (e.g. aws_instance_invalid_type): ") 22 ruleName, err := buf.ReadString('\n') 23 if err != nil { 24 panic(err) 25 } 26 ruleName = strings.Trim(ruleName, "\n") 27 28 meta := &metadata{RuleNameCC: utils.ToCamel(ruleName), RuleName: ruleName} 29 30 _, file, _, _ := runtime.Caller(0) 31 dir := filepath.Dir(filepath.Dir(file)) 32 33 utils.GenerateFileWithLogs(fmt.Sprintf("%s/%s.go", dir, ruleName), fmt.Sprintf("%s/rule.go.tmpl", dir), meta) 34 utils.GenerateFileWithLogs(fmt.Sprintf("%s/%s_test.go", dir, ruleName), fmt.Sprintf("%s/rule_test.go.tmpl", dir), meta) 35 }