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 }