github.com/segakazzz/buffalo@v0.16.22-0.20210119082501-1f52048d3feb/genny/docker/docker.go (about)

     1  package docker
     2  
     3  import (
     4  	"text/template"
     5  
     6  	"github.com/gobuffalo/genny/v2"
     7  	"github.com/gobuffalo/genny/v2/gogen"
     8  	"github.com/gobuffalo/packr/v2"
     9  )
    10  
    11  func New(opts *Options) (*genny.Generator, error) {
    12  	g := genny.New()
    13  
    14  	if err := opts.Validate(); err != nil {
    15  		return g, err
    16  	}
    17  
    18  	data := map[string]interface{}{
    19  		"opts": opts,
    20  	}
    21  
    22  	g.Box(packr.New("github.com/gobuffalo/buffalo/common", "../docker/templates/common"))
    23  
    24  	switch opts.Style {
    25  	case "multi":
    26  		g.Box(packr.New("github.com/gobuffalo/buffalo/multi", "../docker/templates/multi"))
    27  	case "standard":
    28  		g.Box(packr.New("github.com/gobuffalo/buffalo/standard", "../docker/templates/standard"))
    29  	}
    30  
    31  	helpers := template.FuncMap{}
    32  	t := gogen.TemplateTransformer(data, helpers)
    33  	g.Transformer(t)
    34  	g.Transformer(genny.Dot())
    35  
    36  	return g, nil
    37  }