github.com/cheikhshift/buffalo@v0.9.5/generators/docker/docker.go (about) 1 package docker 2 3 import ( 4 "path/filepath" 5 6 "github.com/gobuffalo/buffalo/generators" 7 "github.com/gobuffalo/makr" 8 "github.com/pkg/errors" 9 ) 10 11 // New Docker generator 12 func New() (*makr.Generator, error) { 13 g := makr.New() 14 g.Add(&makr.Func{ 15 Should: func(data makr.Data) bool { 16 if data["docker"] == nil { 17 return true 18 } 19 return data["docker"].(string) != "none" 20 }, 21 Runner: func(root string, data makr.Data) error { 22 if data["docker"] == nil { 23 data["docker"] = "multi" 24 } 25 style := data["docker"].(string) 26 if style != "multi" && style != "standard" { 27 return errors.Errorf("unknown Docker style: %s", style) 28 } 29 files, err := generators.Find(filepath.Join(generators.TemplatesPath, "docker", style)) 30 if err != nil { 31 return errors.WithStack(err) 32 } 33 fg := makr.New() 34 for _, f := range files { 35 fg.Add(makr.NewFile(f.WritePath, f.Body)) 36 } 37 return fg.Run(root, data) 38 }, 39 }) 40 return g, nil 41 }