github.com/cheikhshift/buffalo@v0.9.5/buffalo/cmd/generate/docker.go (about)

     1  package generate
     2  
     3  import (
     4  	"os"
     5  
     6  	"github.com/pkg/errors"
     7  
     8  	"github.com/gobuffalo/buffalo/generators/docker"
     9  	"github.com/gobuffalo/envy"
    10  	"github.com/spf13/cobra"
    11  )
    12  
    13  var dockerOptions = struct {
    14  	Style string
    15  }{}
    16  
    17  // DockerCmd generates a new Dockerfile
    18  var DockerCmd = &cobra.Command{
    19  	Use:   "docker",
    20  	Short: "Generates a Dockerfile",
    21  	RunE: func(cmd *cobra.Command, args []string) error {
    22  		packagePath := envy.CurrentPackage()
    23  
    24  		var webpack bool
    25  		if _, err := os.Stat("package.json"); err == nil {
    26  			webpack = true
    27  		}
    28  		data := map[string]interface{}{
    29  			"packagePath": packagePath,
    30  			"version":     Version,
    31  			"docker":      dockerOptions.Style,
    32  			"asWeb":       webpack,
    33  			"withWepack":  webpack,
    34  			"withYarn":    false,
    35  		}
    36  
    37  		if _, err := os.Stat("yarn.lock"); err == nil {
    38  			data["withYarn"] = true
    39  		}
    40  
    41  		g, err := docker.New()
    42  		if err != nil {
    43  			return errors.WithStack(err)
    44  		}
    45  		return g.Run(".", data)
    46  	},
    47  }
    48  
    49  func init() {
    50  	DockerCmd.Flags().StringVar(&dockerOptions.Style, "style", "multi", "what style Dockerfile to generate [multi, standard]")
    51  }