blob: dde65de59a1f7ad96a72627cd868f702e9ca7b65 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
package senpai
import (
"errors"
"io/ioutil"
"gopkg.in/yaml.v2"
)
type Config struct {
Addr string
Nick string
Real string
User string
Password *string
NoTLS bool `yaml:"no-tls"`
NoTypings bool `yaml:"no-typings"`
Highlights []string
OnHighlight string `yaml:"on-highlight"`
NickColWidth int `yaml:"nick-column-width"`
ChanColWidth int `yaml:"chan-column-width"`
Debug bool
}
func ParseConfig(buf []byte) (cfg Config, err error) {
err = yaml.Unmarshal(buf, &cfg)
if cfg.Addr == "" {
return cfg, errors.New("addr is required")
}
if cfg.Nick == "" {
return cfg, errors.New("nick is required")
}
if cfg.User == "" {
cfg.User = cfg.Nick
}
if cfg.Real == "" {
cfg.Real = cfg.Nick
}
if cfg.NickColWidth <= 0 {
cfg.NickColWidth = 16
}
if cfg.ChanColWidth <= 0 {
cfg.ChanColWidth = 16
}
return
}
func LoadConfigFile(filename string) (cfg Config, err error) {
var buf []byte
buf, err = ioutil.ReadFile(filename)
if err != nil {
return
}
cfg, err = ParseConfig(buf)
return
}
|