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  }