github.com/simonferquel/app@v0.6.1-0.20181012141724-68b7cccf26ac/cmd/docker-app/validate.go (about) 1 package main 2 3 import ( 4 "github.com/docker/app/internal/packager" 5 "github.com/docker/app/render" 6 "github.com/docker/app/types" 7 "github.com/docker/cli/cli" 8 cliopts "github.com/docker/cli/opts" 9 "github.com/spf13/cobra" 10 ) 11 12 var ( 13 validateSettingsFile []string 14 validateEnv []string 15 ) 16 17 func validateCmd() *cobra.Command { 18 cmd := &cobra.Command{ 19 Use: "validate [<app-name>] [-s key=value...] [-f settings-file...]", 20 Short: "Checks the rendered application is syntactically correct", 21 Args: cli.RequiresMaxArgs(1), 22 RunE: func(cmd *cobra.Command, args []string) error { 23 app, err := packager.Extract(firstOrEmpty(args), 24 types.WithSettingsFiles(validateSettingsFile...), 25 ) 26 if err != nil { 27 return err 28 } 29 defer app.Cleanup() 30 argSettings := cliopts.ConvertKVStringsToMap(validateEnv) 31 _, err = render.Render(app, argSettings) 32 return err 33 }, 34 } 35 cmd.Flags().StringArrayVarP(&validateSettingsFile, "settings-files", "f", []string{}, "Override settings files") 36 cmd.Flags().StringArrayVarP(&validateEnv, "set", "s", []string{}, "Override settings values") 37 return cmd 38 }