...
1 package main
2
3 import (
4 "flag"
5 "os"
6 "path/filepath"
7
8 "edge-infra.dev/pkg/edge/api/graph/setup"
9 "edge-infra.dev/pkg/edge/api/types"
10 "edge-infra.dev/pkg/lib/fog"
11
12 _ "github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/postgres"
13 "github.com/gin-gonic/gin"
14 "github.com/joho/godotenv"
15 "github.com/peterbourgon/ff/v3"
16 )
17
18 func init() {
19
20 if os.Getenv("APP_ENV") == "" {
21 if err := godotenv.Load(filepath.Join("cmd", "edge", "api", ".env")); err != nil {
22 log := fog.New()
23 log.Error(err, "error loading .env file")
24 }
25 }
26 gin.SetMode(gin.ReleaseMode)
27 gin.DisableConsoleColor()
28 }
29
30 func main() {
31 flags := flag.NewFlagSet("ee-bff-golang", flag.ExitOnError)
32 config := &types.Config{}
33 config.BindFlags(flags)
34 config.BindKubeConfigFlag(flags)
35 if err := ff.Parse(flags, os.Args[1:], ff.WithEnvVarNoPrefix(), ff.WithIgnoreUndefined(true)); err != nil {
36 errLog := fog.New()
37 errLog.Error(err, "failed to parse command line arguments or environment variables")
38 }
39 config.Validate()
40
41
42 log := setup.Log(config)
43
44
45 dbConnection, _ := setup.DB(config, log)
46 defer dbConnection.Close()
47
48 bqClient, err := setup.BQClient(config)
49 if err != nil {
50 log.Error(err, "failed to create bq client")
51 os.Exit(1)
52 }
53
54 resolver := setup.Resolver(config, dbConnection, bqClient)
55
56 gqlConfig := setup.GqlConfig(resolver)
57 srv := setup.GqlServer(gqlConfig, config, resolver)
58
59 setup.Server(log, config, srv, dbConnection, resolver)
60 }
61
View as plain text