matterbridge/bridge/config.go

72 lines
1.4 KiB
Go
Raw Normal View History

2016-07-11 19:23:33 +00:00
package bridge
import (
"gopkg.in/gcfg.v1"
"io/ioutil"
"log"
)
type Config struct {
IRC struct {
UseTLS bool
2016-07-21 21:47:44 +00:00
UseSASL bool
SkipTLSVerify bool
Server string
Nick string
Password string
Channel string
NickServNick string
NickServPassword string
RemoteNickFormat string
IgnoreNicks string
2016-07-11 19:23:33 +00:00
}
Mattermost struct {
URL string
ShowJoinPart bool
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
}
2016-07-13 22:23:50 +00:00
Xmpp struct {
Jid string
Password string
Server string
Muc string
Nick string
}
2016-07-11 19:23:33 +00:00
Channel map[string]*struct {
IRC string
Mattermost string
2016-07-13 22:23:50 +00:00
Xmpp string
2016-07-11 19:23:33 +00:00
}
General struct {
GiphyAPIKey string
2016-07-13 22:23:50 +00:00
Xmpp bool
Irc bool
2016-07-11 19:23:33 +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
}