Fix error printing
authorr <r@freesoftwareextremist.com>
Tue, 28 Jan 2020 20:50:14 +0000 (20:50 +0000)
committerr <r@freesoftwareextremist.com>
Tue, 28 Jan 2020 20:50:14 +0000 (20:50 +0000)
main.go

diff --git a/main.go b/main.go
index ccfb45625efa8e41688940a004922fe221c9153f..18e474c33b42a24809ddafed68886548c4731dee 100644 (file)
--- a/main.go
+++ b/main.go
@@ -1,6 +1,8 @@
 package main
 
 import (
+       "errors"
+       "fmt"
        "log"
        "math/rand"
        "net/http"
@@ -25,10 +27,15 @@ func init() {
        rand.Seed(time.Now().Unix())
 }
 
+func errExit(err error) {
+       fmt.Fprintln(os.Stderr, err.Error())
+       os.Exit(1)
+}
+
 func main() {
        opts, _, err := util.Getopts(os.Args, "f:")
        if err != nil {
-               log.Fatal(err)
+               errExit(err)
        }
 
        for _, opt := range opts {
@@ -40,34 +47,34 @@ func main() {
 
        config, err := config.ParseFile(configFile)
        if err != nil {
-               log.Fatal(err)
+               errExit(err)
        }
 
        if !config.IsValid() {
-               log.Fatal("invalid config")
+               errExit(errors.New("invalid config"))
        }
 
        templatesGlobPattern := filepath.Join(config.TemplatesPath, "*")
        renderer, err := renderer.NewRenderer(templatesGlobPattern)
        if err != nil {
-               log.Fatal(err)
+               errExit(err)
        }
 
        err = os.Mkdir(config.DatabasePath, 0755)
        if err != nil && !os.IsExist(err) {
-               log.Fatal(err)
+               errExit(err)
        }
 
        sessionDBPath := filepath.Join(config.DatabasePath, "session")
        sessionDB, err := kv.NewDatabse(sessionDBPath)
        if err != nil {
-               log.Fatal(err)
+               errExit(err)
        }
 
        appDBPath := filepath.Join(config.DatabasePath, "app")
        appDB, err := kv.NewDatabse(appDBPath)
        if err != nil {
-               log.Fatal(err)
+               errExit(err)
        }
 
        sessionRepo := repo.NewSessionRepo(sessionDB)
@@ -85,7 +92,7 @@ func main() {
        } else {
                lf, err := os.Open(config.LogFile)
                if err != nil {
-                       log.Fatal(err)
+                       errExit(err)
                }
                defer lf.Close()
                logger = log.New(lf, "", log.LstdFlags)
@@ -101,6 +108,6 @@ func main() {
        logger.Println("listening on", config.ListenAddress)
        err = http.ListenAndServe(config.ListenAddress, handler)
        if err != nil {
-               log.Fatal(err)
+               errExit(err)
        }
 }