github.com/JarrahG/buffalocli@v0.0.0-20230801092127-b85bfd5d395a/internal/genny/fix/embed.go (about) 1 package fix 2 3 import ( 4 "bytes" 5 "fmt" 6 "html/template" 7 8 "github.com/JarrahG/buffalocli/internal/genny/newapp/api" 9 "github.com/JarrahG/buffalocli/internal/genny/newapp/web" 10 "github.com/gobuffalo/genny/v2" 11 ) 12 13 func FixEmbed(opts *Options) genny.RunFn { 14 return func(r *genny.Runner) error { 15 fmt.Println("~~~ Checking embed.go files ~~~") 16 17 files := []string{"locales/embed.go", "public/embed.go", "templates/embed.go"} 18 templates, err := web.Templates() 19 if err != nil { 20 return err 21 } 22 23 if opts.App.AsAPI { 24 files = []string{"locales/embed.go"} 25 26 templates, err = api.Templates() 27 if err != nil { 28 return err 29 } 30 } else { 31 f := genny.NewFileS("templates/home/delete_me.txt", "you can delete this file") 32 if err := r.File(f); err != nil { 33 return err 34 } 35 } 36 37 for _, name := range files { 38 tmpl, err := template.New("embed.go").ParseFS(templates, name+".tmpl") 39 if err != nil { 40 return err 41 } 42 43 bb := &bytes.Buffer{} 44 if err := tmpl.ExecuteTemplate(bb, "embed.go.tmpl", nil); err != nil { 45 return err 46 } 47 48 f := genny.NewFile(name, bb) 49 if err := r.File(f); err != nil { 50 return err 51 } 52 } 53 return nil 54 } 55 }