summaryrefslogtreecommitdiff
path: root/config.go
diff options
context:
space:
mode:
authorHubert Hirtz <hubert@hirtz.pm>2021-04-30 10:17:16 +0200
committerHubert Hirtz <hubert@hirtz.pm>2021-04-30 10:17:16 +0200
commite6df23b3f95433141ecacd0219230e7fa1034ef9 (patch)
tree3ab68eb42c29df4ab7c23093a514e5c0dcaf7d7c /config.go
parentUse path.Join to construct config file path (diff)
Better error reporting about configuration file
- Better errors in config.go - Do not print useless timestamps in cmd/senpai/main.go - Let os.UserConfigDir() and senpai.NewApp() call panic on error since they both should not fail.
Diffstat (limited to 'config.go')
-rw-r--r--config.go10
1 files changed, 8 insertions, 2 deletions
diff --git a/config.go b/config.go
index fcd4cc3..1d8d79a 100644
--- a/config.go
+++ b/config.go
@@ -2,6 +2,7 @@ package senpai
import (
"errors"
+ "fmt"
"io/ioutil"
"gopkg.in/yaml.v2"
@@ -28,6 +29,9 @@ type Config struct {
func ParseConfig(buf []byte) (cfg Config, err error) {
err = yaml.Unmarshal(buf, &cfg)
+ if err != nil {
+ return cfg, err
+ }
if cfg.Addr == "" {
return cfg, errors.New("addr is required")
}
@@ -54,10 +58,12 @@ func LoadConfigFile(filename string) (cfg Config, err error) {
buf, err = ioutil.ReadFile(filename)
if err != nil {
- return
+ return cfg, fmt.Errorf("failed to read the file: %s", err)
}
cfg, err = ParseConfig(buf)
-
+ if err != nil {
+ return cfg, fmt.Errorf("invalid content found in the file: %s", err)
+ }
return
}