summaryrefslogtreecommitdiff
path: root/config.go
blob: 2515e5725b913135764de3ffc6eb3ad405dc780a (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
package senpai

import (
	"io/ioutil"

	"gopkg.in/yaml.v2"
)

type Config struct {
	Addr     string
	Nick     string
	Real     string
	User     string
	Password *string

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