func main()

in tools/gen-go-enum/main.go [197:244]


func main() {
	flag.Parse()

	if className == "" || len(enumValues) == 0 {
		flag.Usage()
		return
	}

	if packageName == "" {
		packageName = "enum"
	}

	if enumName == "" {
		classItems := strings.Split(className, ".")
		enumName = classItems[len(classItems)-1]
	}

	if targetFile == "" {
		targetFile = snakeCase(enumName) + ".go"
	}

	tmpl, err := template.New("enum").Funcs(template.FuncMap{"pascalCase": pascalCase}).Parse(enumTempl)

	if err != nil {
		log.Fatalln("Error: can't parse code template!!!", err)
	}

	fd, err := os.Create(targetFile)

	if err != nil {
		log.Fatalln("Error: can't open target file!!!", err)
	}

	defer func() { _ = fd.Close() }()

	err = tmpl.Execute(fd, &viewData{
		ClassName:   className,
		PackageName: packageName,
		EnumName:    enumName,
		EnumValues:  enumValues,
	})

	if err != nil {
		log.Fatalln("Error: can't write target file!!!", err)
	}

	fmt.Printf("Create file '%s'!\n", targetFile)
}