46func (app *Application) Start() {
47 log.Println("Starting server on port", app.Config.Port)
48 if err := app.server.ListenAndServe(); err != nil && errors.Is(err, http.ErrServerClosed) {
49 log.Fatalf("Server closed, readon: %v", err)50 }
51}
52
87 // metrics := &models.Gitevent{}
88 data, err := json.Marshal(metrics)
89 if err != nil {
90 log.Fatal(err)91
92 }
93
54func (app *Application) Start() {
55 log.Println("Starting server on port", app.Config.Port)
56 if err := app.server.ListenAndServe(); err != nil && errors.Is(err, http.ErrServerClosed) {
57 log.Fatalf("Server closed, readon: %v", err)58 }
59}
60
76 Subjects: []string{streamSubjects},
77 })
78 if err != nil {
79 log.Fatal(err) 80 }
81 }
82 return nil
Packages exposing functions that can stop program execution by exiting are hard to reuse. Program exits in functions other than main() or init() are not encouraged.
func nonMainFunc() {
safelyExit := true // somehow arrive at this value
if safelyExit {
os.Exit(0)
}
}
func main() {
nonMainFunc()
}
func nonMainFunc() bool {
safelyExit := true // somehow arrive at this value
}
func main() {
safelyExit := nonMainFunc()
if safelyExit {
os.Exit(0)
}
}