diff --git a/config.go b/config.go index bd4004d..4cdb35b 100644 --- a/config.go +++ b/config.go @@ -27,12 +27,13 @@ func makeDefaultConfig() Config { } } -func (config *Config) load() { +func (config *Config) load() error { j := jsonc.New() homeDir, err := os.UserHomeDir() if err != nil { - log.Fatal("could not get home directory!", err) + log.Println("could not get home directory!") + return err } configPath := homeDir + "/.config/gopaper/config.jsonc" @@ -42,12 +43,14 @@ func (config *Config) load() { defaultConfig := makeDefaultConfig() defaultConfigJSON, err := json.MarshalIndent(defaultConfig, "", "") if err != nil { - log.Fatal("could not encode default config!", err) + log.Println("could not encode default config!") + return err } file, err := os.Create(configPath) defer file.Close() if err != nil { - log.Fatal("could not create config file!", err) + log.Println("could not create config file!") + return err } file.Write(defaultConfigJSON) *config = defaultConfig @@ -57,7 +60,8 @@ func (config *Config) load() { configRaw = j.Strip(configRaw) err = json.Unmarshal(configRaw, &config) if err != nil { - log.Fatal("Couldn't unmarshal config!\n", err) + log.Println("Couldn't unmarshal config!") + return err } } @@ -71,4 +75,5 @@ func (config *Config) load() { } config.ImagesDir = homeDir + "/" + config.ImagesDir + "/" + return nil } diff --git a/main.go b/main.go index d5f7f6a..22ae7f6 100644 --- a/main.go +++ b/main.go @@ -1,8 +1,7 @@ package main import ( - "fmt" - // "log" + "log" "os" "sync" ) @@ -10,9 +9,13 @@ import ( var config Config func main() { + err := config.load() + if err != nil { + log.Println("failed to load config", err) + cleanExit(1) + } - config.load() - fmt.Printf("%+v\n", config) + log.Printf("%+v\n", config) var waitGroup sync.WaitGroup waitGroup.Add(1)