github.com/dolanor/pop@v4.13.0+incompatible/genny/config/config.go (about) 1 package config 2 3 import ( 4 "fmt" 5 "path/filepath" 6 7 "github.com/gobuffalo/genny" 8 "github.com/gobuffalo/genny/gogen" 9 "github.com/gobuffalo/packr/v2" 10 ) 11 12 var templates = packr.New("pop:genny:config", "../config/templates") 13 14 // New generator to create a database.yml file 15 func New(opts *Options) (*genny.Generator, error) { 16 g := genny.New() 17 if err := opts.Validate(); err != nil { 18 return g, err 19 } 20 21 f, err := templates.Open(opts.Dialect + ".yml.tmpl") 22 if err != nil { 23 return g, fmt.Errorf("unable to find database.yml template for dialect %s", opts.Dialect) 24 } 25 26 name := filepath.Join(opts.Root, opts.FileName+".tmpl") 27 gf := genny.NewFile(name, f) 28 g.File(gf) 29 30 data := map[string]interface{}{ 31 "opts": opts, 32 } 33 34 t := gogen.TemplateTransformer(data, gogen.TemplateHelpers) 35 g.Transformer(t) 36 g.Transformer(genny.Dot()) 37 38 return g, nil 39 }