()
| 24 | ) |
| 25 | |
| 26 | func main() { |
| 27 | flag.Parse() |
| 28 | if *flagVersion { |
| 29 | fmt.Printf("version: %s %s\n", version.Release, version.GitHash) |
| 30 | return |
| 31 | } |
| 32 | |
| 33 | rootLogger := setupLogger() |
| 34 | logger := rootLogger.WithFields(logrus.Fields{"prefix": "main"}) |
| 35 | |
| 36 | if *flagGops { |
| 37 | if err := agent.Listen(agent.Options{}); err != nil { |
| 38 | logger.Errorf("Failed to start gops agent: %#v", err) |
| 39 | } else { |
| 40 | defer agent.Close() |
| 41 | } |
| 42 | } |
| 43 | |
| 44 | logger.Printf("Running version %s %s", version.Release, version.GitHash) |
| 45 | if strings.Contains(version.Release, "-dev") { |
| 46 | logger.Println("WARNING: THIS IS A DEVELOPMENT VERSION. Things may break.") |
| 47 | } |
| 48 | |
| 49 | cfg := config.NewConfig(rootLogger, *flagConfig) |
| 50 | cfg.BridgeValues().General.Debug = *flagDebug |
| 51 | |
| 52 | // if logging to a file, ensure it is closed when the program terminates |
| 53 | // nolint:errcheck |
| 54 | defer func() { |
| 55 | if f, ok := rootLogger.Out.(*os.File); ok { |
| 56 | f.Sync() |
| 57 | f.Close() |
| 58 | } |
| 59 | }() |
| 60 | |
| 61 | r, err := gateway.NewRouter(rootLogger, cfg, bridgemap.FullMap) |
| 62 | if err != nil { |
| 63 | logger.Fatalf("Starting gateway failed: %s", err) |
| 64 | } |
| 65 | if err = r.Start(); err != nil { |
| 66 | logger.Fatalf("Starting gateway failed: %s", err) |
| 67 | } |
| 68 | logger.Printf("Gateway(s) started succesfully. Now relaying messages") |
| 69 | select {} |
| 70 | } |
| 71 | |
| 72 | func setupLogger() *logrus.Logger { |
| 73 | logger := &logrus.Logger{ |
nothing calls this directly
no test coverage detected