1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package main
- import (
- "flag"
- "fmt"
- "log"
- "os"
- "path/filepath"
- "strings"
- "text/template"
- "github.com/jinzhu/inflection"
- tpl_util "gogs.carduccidante.edu.it/karmen/core/util/template"
- )
- var (
- fnPatterns = map[string]string{
- "all": "%s",
- "show": "%s_show",
- "add_update": "%s_add_update",
- }
- )
- func toUpper(str string) string {
- return strings.Title(str)
- }
- func main() {
- flag.Usage = func() {
- fmt.Fprintf(os.Stderr, "Usage of %s:\n", os.Args[0])
- flag.PrintDefaults()
- }
- outDir := flag.String("outdir", "./templates", "Output directory")
- tplDir := flag.String("tpldir", "./generator/templates", "Generator template directory")
- flag.Parse()
- if len(flag.Args()) == 0 {
- flag.Usage()
- return
- }
- funcMap := template.FuncMap{
- "toUpper": toUpper,
- }
- model := flag.Args()[0]
- for tplName, pattern := range fnPatterns {
- name := fmt.Sprintf(pattern, model)
- tpl, err := tpl_util.LoadTextTemplate(filepath.Join(*tplDir, tplName+".tpl"), funcMap)
- if err != nil {
- panic(err)
- }
- filename := filepath.Join(*outDir, name+".html.tpl")
- oFn, err := os.Create(filename)
- if err != nil {
- panic(err)
- }
- defer oFn.Close()
- log.Printf("Generating html template %s for model %s...", filename, name)
- var data struct {
- Model string
- Models string
- }
- data.Model = inflection.Singular(model)
- data.Models = inflection.Plural(model)
- err = tpl.Execute(oFn, data)
- if err != nil {
- panic(err)
- }
- }
- }
|