2015-10-23 20:34:37 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2016-03-21 23:25:47 +00:00
|
|
|
log "github.com/Sirupsen/logrus"
|
2015-10-23 20:34:37 +00:00
|
|
|
"gopkg.in/gcfg.v1"
|
|
|
|
"io/ioutil"
|
|
|
|
)
|
|
|
|
|
|
|
|
type Config struct {
|
|
|
|
IRC struct {
|
2016-03-18 19:54:14 +00:00
|
|
|
UseTLS bool
|
|
|
|
SkipTLSVerify bool
|
|
|
|
Server string
|
|
|
|
Port int
|
|
|
|
Nick string
|
|
|
|
Password string
|
|
|
|
Channel string
|
|
|
|
UseSlackCircumfix bool
|
2016-03-21 18:28:16 +00:00
|
|
|
NickServNick string
|
|
|
|
NickServPassword string
|
2016-03-18 19:54:14 +00:00
|
|
|
}
|
|
|
|
Mattermost struct {
|
|
|
|
URL string
|
2016-03-18 10:09:29 +00:00
|
|
|
Port int
|
2016-03-18 19:54:14 +00:00
|
|
|
ShowJoinPart bool
|
|
|
|
Token string
|
|
|
|
IconURL string
|
|
|
|
SkipTLSVerify bool
|
|
|
|
BindAddress string
|
2016-03-18 10:09:29 +00:00
|
|
|
Channel string
|
|
|
|
PrefixMessagesWithNick bool
|
2016-03-18 19:12:58 +00:00
|
|
|
NicksPerRow int
|
|
|
|
NickFormatter string
|
2015-10-23 20:34:37 +00:00
|
|
|
}
|
2015-12-19 15:55:49 +00:00
|
|
|
Token map[string]*struct {
|
|
|
|
IRCChannel string
|
|
|
|
MMChannel string
|
|
|
|
}
|
2015-10-27 23:04:57 +00:00
|
|
|
General struct {
|
|
|
|
GiphyAPIKey string
|
|
|
|
}
|
2015-10-23 20:34:37 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
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
|
|
|
|
}
|