return errors from function, instead of calling log.Fatal

This commit is contained in:
andrzej 2024-11-04 16:42:24 +01:00
parent 568dc2b8d4
commit 0c50f6fa72
2 changed files with 17 additions and 9 deletions

View File

@ -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
}

11
main.go
View File

@ -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)