github.com/animeshon/gqlgen@v0.13.1-0.20210304133704-3a770431bb6d/cmd/gen.go (about) 1 package cmd 2 3 import ( 4 "os" 5 6 "github.com/animeshon/gqlgen/api" 7 "github.com/animeshon/gqlgen/codegen/config" 8 "github.com/pkg/errors" 9 "github.com/urfave/cli/v2" 10 ) 11 12 var genCmd = &cli.Command{ 13 Name: "generate", 14 Usage: "generate a graphql server based on schema", 15 Flags: []cli.Flag{ 16 &cli.BoolFlag{Name: "verbose, v", Usage: "show logs"}, 17 &cli.StringFlag{Name: "config, c", Usage: "the config filename"}, 18 }, 19 Action: func(ctx *cli.Context) error { 20 var cfg *config.Config 21 var err error 22 if configFilename := ctx.String("config"); configFilename != "" { 23 cfg, err = config.LoadConfig(configFilename) 24 if err != nil { 25 return err 26 } 27 } else { 28 cfg, err = config.LoadConfigFromDefaultLocations() 29 if os.IsNotExist(errors.Cause(err)) { 30 cfg, err = config.LoadDefaultConfig() 31 } 32 33 if err != nil { 34 return err 35 } 36 } 37 38 if err = api.Generate(cfg); err != nil { 39 return err 40 } 41 return nil 42 }, 43 }