github.com/JarrahG/buffalocli@v0.0.0-20230801092127-b85bfd5d395a/internal/genny/assets/standard/standard.go (about) 1 package standard 2 3 import ( 4 "embed" 5 "io/fs" 6 "strings" 7 "text/template" 8 9 "github.com/gobuffalo/genny/v2" 10 "github.com/gobuffalo/genny/v2/gogen" 11 ) 12 13 //go:embed templates/* 14 var templates embed.FS 15 16 // New generator for creating basic asset files 17 func New(opts *Options) (*genny.Generator, error) { 18 g := genny.New() 19 20 sub, err := fs.Sub(templates, "templates") 21 if err != nil { 22 return g, err 23 } 24 25 if err := g.FS(sub); err != nil { 26 return g, err 27 } 28 29 data := map[string]interface{}{} 30 h := template.FuncMap{} 31 t := gogen.TemplateTransformer(data, h) 32 g.Transformer(t) 33 34 g.RunFn(func(r *genny.Runner) error { 35 f, err := r.FindFile("templates/application.plush.html") 36 if err != nil { 37 return err 38 } 39 40 s := strings.Replace(f.String(), "</title>", "</title>\n"+bs4, 1) 41 return r.File(genny.NewFileS(f.Name(), s)) 42 }) 43 44 return g, nil 45 } 46 47 const bs4 = `<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">`