Clean up code for loading the config

This commit is contained in:
Nise Void 2017-02-25 16:05:03 +01:00
parent 175d7513af
commit 044cb3667c
1 changed files with 27 additions and 21 deletions

48
main.go
View File

@ -14,28 +14,9 @@ import (
"github.com/russross/blackfriday" "github.com/russross/blackfriday"
) )
var config struct {
Port int `json:"port"`
Template string `json:"template"`
}
func main() { func main() {
// Open config if err := loadConfig(); err != nil {
f, err := os.Open(`config.json`) log.Fatal(`Failed to load config. ` + err.Error())
if err != nil && !os.IsNotExist(err) {
log.Fatal(`Failed to open config. ` + err.Error())
}
// Set defaults
config.Port = 80
config.Template = `template.html`
// Parse config
if err == nil {
err = json.NewDecoder(f).Decode(&config)
if err != nil {
log.Fatal(`Could not parse config. ` + err.Error())
}
} }
if err := updateTemplate(); err != nil { if err := updateTemplate(); err != nil {
@ -45,6 +26,31 @@ func main() {
log.Fatal(http.ListenAndServe(":"+strconv.Itoa(config.Port), http.HandlerFunc(serveRequest))) log.Fatal(http.ListenAndServe(":"+strconv.Itoa(config.Port), http.HandlerFunc(serveRequest)))
} }
var config struct {
Port int `json:"port"`
Template string `json:"template"`
}
func loadConfig() error {
f, err := os.Open(`config.json`)
if err != nil && !os.IsNotExist(err) {
return err
}
// Set defaults
config.Port = 80
config.Template = `template.html`
if err != nil {
return
}
err = json.NewDecoder(f).Decode(&config)
if err != nil {
return err
}
}
var t *template.Template var t *template.Template
func updateTemplate() error { func updateTemplate() error {