diff options
| -rw-r--r-- | main.go | 25 | 
1 files changed, 16 insertions, 9 deletions
| @@ -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)  	}  } | 
