github.com/plages-ai/gqlgen@v0.7.2/cmd/root.go (about) 1 package cmd 2 3 import ( 4 "fmt" 5 "io/ioutil" 6 "log" 7 "os" 8 9 "github.com/99designs/gqlgen/graphql" 10 "github.com/99designs/gqlgen/internal/gopath" 11 "github.com/urfave/cli" 12 13 // Required since otherwise dep will prune away these unused packages before codegen has a chance to run 14 _ "github.com/99designs/gqlgen/handler" 15 ) 16 17 func Execute() { 18 app := cli.NewApp() 19 app.Name = "gqlgen" 20 app.Usage = genCmd.Usage 21 app.Description = "This is a library for quickly creating strictly typed graphql servers in golang. See https://gqlgen.com/ for a getting started guide." 22 app.HideVersion = true 23 app.Flags = genCmd.Flags 24 app.Version = graphql.Version 25 app.Before = func(context *cli.Context) error { 26 pwd, err := os.Getwd() 27 if err != nil { 28 return fmt.Errorf("unable to determine current workding dir: %s\n", err.Error()) 29 } 30 31 if !gopath.Contains(pwd) { 32 return fmt.Errorf("gqlgen must be run from inside your $GOPATH\n") 33 } 34 if context.Bool("verbose") { 35 log.SetFlags(0) 36 } else { 37 log.SetOutput(ioutil.Discard) 38 } 39 return nil 40 } 41 42 app.Action = genCmd.Action 43 app.Commands = []cli.Command{ 44 genCmd, 45 initCmd, 46 versionCmd, 47 } 48 49 if err := app.Run(os.Args); err != nil { 50 fmt.Fprintf(os.Stderr, err.Error()) 51 os.Exit(1) 52 } 53 }