return errors from function, instead of calling log.Fatal
This commit is contained in:
parent
568dc2b8d4
commit
0c50f6fa72
15
config.go
15
config.go
|
@ -27,12 +27,13 @@ func makeDefaultConfig() Config {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (config *Config) load() {
|
func (config *Config) load() error {
|
||||||
j := jsonc.New()
|
j := jsonc.New()
|
||||||
|
|
||||||
homeDir, err := os.UserHomeDir()
|
homeDir, err := os.UserHomeDir()
|
||||||
if err != nil {
|
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"
|
configPath := homeDir + "/.config/gopaper/config.jsonc"
|
||||||
|
@ -42,12 +43,14 @@ func (config *Config) load() {
|
||||||
defaultConfig := makeDefaultConfig()
|
defaultConfig := makeDefaultConfig()
|
||||||
defaultConfigJSON, err := json.MarshalIndent(defaultConfig, "", "")
|
defaultConfigJSON, err := json.MarshalIndent(defaultConfig, "", "")
|
||||||
if err != nil {
|
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)
|
file, err := os.Create(configPath)
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("could not create config file!", err)
|
log.Println("could not create config file!")
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
file.Write(defaultConfigJSON)
|
file.Write(defaultConfigJSON)
|
||||||
*config = defaultConfig
|
*config = defaultConfig
|
||||||
|
@ -57,7 +60,8 @@ func (config *Config) load() {
|
||||||
configRaw = j.Strip(configRaw)
|
configRaw = j.Strip(configRaw)
|
||||||
err = json.Unmarshal(configRaw, &config)
|
err = json.Unmarshal(configRaw, &config)
|
||||||
if err != nil {
|
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 + "/"
|
config.ImagesDir = homeDir + "/" + config.ImagesDir + "/"
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
11
main.go
11
main.go
|
@ -1,8 +1,7 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"log"
|
||||||
// "log"
|
|
||||||
"os"
|
"os"
|
||||||
"sync"
|
"sync"
|
||||||
)
|
)
|
||||||
|
@ -10,9 +9,13 @@ import (
|
||||||
var config Config
|
var config Config
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
err := config.load()
|
||||||
|
if err != nil {
|
||||||
|
log.Println("failed to load config", err)
|
||||||
|
cleanExit(1)
|
||||||
|
}
|
||||||
|
|
||||||
config.load()
|
log.Printf("%+v\n", config)
|
||||||
fmt.Printf("%+v\n", config)
|
|
||||||
|
|
||||||
var waitGroup sync.WaitGroup
|
var waitGroup sync.WaitGroup
|
||||||
waitGroup.Add(1)
|
waitGroup.Add(1)
|
||||||
|
|
Loading…
Reference in New Issue