tools/template-check/main.go (53 lines of code) (raw):

package main import ( "bufio" "flag" "fmt" "os" "github.com/GoogleCloudPlatform/magic-modules/tools/template-check/gotemplate" ) func isValidTemplate(filename string) (bool, error) { results, err := gotemplate.CheckVersionGuardsForFile(filename) if err != nil { return false, err } if len(results) > 0 { fmt.Fprintf(os.Stderr, "error: invalid version checks found in %s:\n", filename) for _, result := range results { fmt.Fprintf(os.Stderr, " %s\n", result) } return false, nil } return true, nil } func checkTemplate(filename string) bool { valid, err := isValidTemplate(filename) if err != nil { fmt.Fprintln(os.Stderr, err.Error()) return false } return valid } func main() { flag.Usage = func() { fmt.Fprintf(flag.CommandLine.Output(), "template-check - check that a template file is valid\n template-check [file]\n") } flag.Parse() // Handle file as a positional argument if flag.Arg(0) != "" { if !checkTemplate(flag.Arg(0)) { os.Exit(1) } os.Exit(0) } // Handle files coming from a linux pipe fileInfo, _ := os.Stdin.Stat() if fileInfo.Mode()&os.ModeCharDevice == 0 { exitStatus := 0 scanner := bufio.NewScanner(bufio.NewReader(os.Stdin)) for scanner.Scan() { if !checkTemplate(scanner.Text()) { exitStatus = 1 } } os.Exit(exitStatus) } }