summaryrefslogtreecommitdiffstats
path: root/bridge/config.go
blob: 37d3e95c76fa9d8f900626eabf6fb0f3801fab79 (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
63
package bridge

import (
	"gopkg.in/gcfg.v1"
	"io/ioutil"
	"log"
)

type Config struct {
	IRC struct {
		UseTLS           bool
		SkipTLSVerify    bool
		Server           string
		Port             int
		Nick             string
		Password         string
		Channel          string
		NickServNick     string
		NickServPassword string
		RemoteNickFormat string
		IgnoreNicks      string
	}
	Mattermost struct {
		URL                    string
		Port                   int
		ShowJoinPart           bool
		Token                  string
		IconURL                string
		SkipTLSVerify          bool
		BindAddress            string
		Channel                string
		PrefixMessagesWithNick bool
		NicksPerRow            int
		NickFormatter          string
		Server                 string
		Team                   string
		Login                  string
		Password               string
		RemoteNickFormat       *string
		IgnoreNicks            string
		NoTLS                  bool
	}
	Channel map[string]*struct {
		IRC        string
		Mattermost string
	}
	General struct {
		GiphyAPIKey string
	}
}

func NewConfig(cfgfile string) *Config {
	var cfg Config
	content, err := ioutil.ReadFile(cfgfile)
	if err != nil {
		log.Fatal(err)
	}
	err = gcfg.ReadStringInto(&cfg, string(content))
	if err != nil {
		log.Fatal("Failed to parse "+cfgfile+":", err)
	}
	return &cfg
}