gen.go

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