github.com/99designs/gqlgen@v0.17.45/testdata/gqlgen.go (about) 1 package main 2 3 import ( 4 "flag" 5 "fmt" 6 "io" 7 "log" 8 "os" 9 "time" 10 11 "github.com/99designs/gqlgen/api" 12 "github.com/99designs/gqlgen/codegen/config" 13 "github.com/99designs/gqlgen/graphql" 14 "github.com/99designs/gqlgen/plugin/stubgen" 15 ) 16 17 func main() { 18 stub := flag.String("stub", "", "name of stub file to generate") 19 cfgPath := flag.String("config", "", "path to config file (use default if omitted)") 20 flag.Parse() 21 22 log.SetOutput(io.Discard) 23 24 start := graphql.Now() 25 26 var cfg *config.Config 27 var err error 28 if cfgPath != nil && *cfgPath != "" { 29 cfg, err = config.LoadConfig(*cfgPath) 30 } else { 31 cfg, err = config.LoadConfigFromDefaultLocations() 32 } 33 if err != nil { 34 fmt.Fprintln(os.Stderr, "failed to load config", err.Error()) 35 os.Exit(2) 36 } 37 38 var options []api.Option 39 if *stub != "" { 40 options = append(options, api.AddPlugin(stubgen.New(*stub, "Stub"))) 41 } 42 43 err = api.Generate(cfg, options...) 44 if err != nil { 45 fmt.Fprintln(os.Stderr, err.Error()) 46 os.Exit(3) 47 } 48 49 fmt.Printf("Generated %s in %4.2fs\n", cfg.Exec.ImportPath(), time.Since(start).Seconds()) 50 }