From fce1b99683e5ec7f8666fc6cd6ea5f7a027a83d7 Mon Sep 17 00:00:00 2001 From: dhax Date: Thu, 19 Oct 2017 00:40:25 +0200 Subject: [PATCH] use log.Fatal instead panic on config errors --- README.md | 2 +- cmd/gendoc.go | 5 +++-- cmd/root.go | 4 ++-- cmd/serve.go | 4 +++- database/migrate/main.go | 28 +++++++++------------------- database/postgres.go | 4 ++-- logging/logger.go | 3 ++- 7 files changed, 22 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 476614b..ce60ff3 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ AUTH_LOGIN_TOKEN_EXPIRY | time.Duration | 11m | login token expiry AUTH_JWT_SECRET | string | random | jwt sign and verify key - value "random" creates random 32 char secret at startup (and automatically invalidates existing tokens on app restarts, so during dev you might want to set a fixed value here) AUTH_JWT_EXPIRY | time.Duration | 15m | jwt access token expiry AUTH_JWT_REFRESH_EXPIRY | time.Duration | 1h | jwt refresh token expiry -EMAIL_SMTP_HOST | string || email smtp host (if set and connection can't be established then app panics) +EMAIL_SMTP_HOST | string || email smtp host (if set and connection can't be established then app exits) EMAIL_SMTP_PORT | int || email smtp port EMAIL_SMTP_USER | string || email smtp username EMAIL_SMTP_PASSWORD | string || email smtp password diff --git a/cmd/gendoc.go b/cmd/gendoc.go index cefa919..012d7c7 100644 --- a/cmd/gendoc.go +++ b/cmd/gendoc.go @@ -17,6 +17,7 @@ package cmd import ( "fmt" "io/ioutil" + "log" "github.com/dhax/go-base/api" "github.com/go-chi/docgen" @@ -67,8 +68,8 @@ func genRoutesDoc() { Intro: "GoBase REST API.", }) if err := ioutil.WriteFile("routes.md", []byte(md), 0644); err != nil { - fmt.Print(err) + log.Println(err) return } - fmt.Print("OK\n") + fmt.Println("OK") } diff --git a/cmd/root.go b/cmd/root.go index 50ed141..41e29ac 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -16,6 +16,7 @@ package cmd import ( "fmt" + "log" "os" homedir "github.com/mitchellh/go-homedir" @@ -76,8 +77,7 @@ func initConfig() { // Find home directory. home, err := homedir.Dir() if err != nil { - fmt.Println(err) - os.Exit(1) + log.Fatal(err) } // Search config in home directory with name ".go-base" (without extension). diff --git a/cmd/serve.go b/cmd/serve.go index 6b5f161..a29546d 100644 --- a/cmd/serve.go +++ b/cmd/serve.go @@ -15,6 +15,8 @@ package cmd import ( + "log" + "github.com/dhax/go-base/api" "github.com/spf13/cobra" "github.com/spf13/viper" @@ -28,7 +30,7 @@ var serveCmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { server, err := api.NewServer() if err != nil { - panic(err) + log.Fatal(err) } server.Start() }, diff --git a/database/migrate/main.go b/database/migrate/main.go index 51f6f11..e90f93d 100644 --- a/database/migrate/main.go +++ b/database/migrate/main.go @@ -1,8 +1,7 @@ package migrate import ( - "fmt" - "os" + "log" "github.com/dhax/go-base/database" "github.com/go-pg/migrations" @@ -13,7 +12,7 @@ import ( func Migrate(args []string) { db, err := database.DBConn() if err != nil { - panic(err) + log.Fatal(err) } err = db.RunInTransaction(func(tx *pg.Tx) error { @@ -22,14 +21,14 @@ func Migrate(args []string) { return err } if newVersion != oldVersion { - fmt.Printf("migrated from version %d to %d\n", oldVersion, newVersion) + log.Printf("migrated from version %d to %d\n", oldVersion, newVersion) } else { - fmt.Printf("version is %d\n", oldVersion) + log.Printf("version is %d\n", oldVersion) } return nil }) if err != nil { - exitf(err.Error()) + log.Fatal(err) } } @@ -38,12 +37,12 @@ func Migrate(args []string) { func Reset() { db, err := database.DBConn() if err != nil { - exitf(err.Error()) + log.Fatal(err) } version, err := migrations.Version(db) if err != nil { - exitf(err.Error()) + log.Fatal(err) } err = db.RunInTransaction(func(tx *pg.Tx) error { @@ -52,21 +51,12 @@ func Reset() { if err != nil { return err } - fmt.Printf("migrated from version %d to %d\n", oldVersion, newVersion) + log.Printf("migrated from version %d to %d\n", oldVersion, newVersion) version = newVersion } return nil }) if err != nil { - exitf(err.Error()) + log.Fatal(err) } } - -func errorf(s string, args ...interface{}) { - fmt.Fprintf(os.Stderr, s+"\n", args...) -} - -func exitf(s string, args ...interface{}) { - errorf(s, args...) - os.Exit(1) -} diff --git a/database/postgres.go b/database/postgres.go index a206baa..9185041 100644 --- a/database/postgres.go +++ b/database/postgres.go @@ -1,7 +1,7 @@ package database import ( - "fmt" + "log" "time" "github.com/spf13/viper" @@ -28,7 +28,7 @@ func DBConn() (*pg.DB, error) { if err != nil { panic(err) } - fmt.Printf("%s %s\n", time.Since(event.StartTime), query) + log.Printf("%s %s\n", time.Since(event.StartTime), query) }) } diff --git a/logging/logger.go b/logging/logger.go index 8222b86..6f84d8c 100644 --- a/logging/logger.go +++ b/logging/logger.go @@ -2,6 +2,7 @@ package logging import ( "fmt" + "log" "net/http" "time" @@ -39,7 +40,7 @@ func NewLogger() *logrus.Logger { } l, err := logrus.ParseLevel(level) if err != nil { - panic(err) + log.Fatal(err) } Logger.Level = l return Logger