summaryrefslogtreecommitdiffstats
path: root/bridge/config/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'bridge/config/config.go')
-rw-r--r--bridge/config/config.go81
1 files changed, 81 insertions, 0 deletions
diff --git a/bridge/config/config.go b/bridge/config/config.go
new file mode 100644
index 00000000..131ff95e
--- /dev/null
+++ b/bridge/config/config.go
@@ -0,0 +1,81 @@
+package config
+
+import (
+ "gopkg.in/gcfg.v1"
+ "io/ioutil"
+ "log"
+)
+
+type Message struct {
+ Text string
+ Channel string
+ Username string
+ Origin string
+}
+
+type Config struct {
+ IRC struct {
+ UseTLS bool
+ UseSASL bool
+ SkipTLSVerify bool
+ Server string
+ Nick string
+ Password string
+ Channel string
+ NickServNick string
+ NickServPassword string
+ RemoteNickFormat string
+ IgnoreNicks string
+ }
+ 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
+ }
+ Xmpp struct {
+ Jid string
+ Password string
+ Server string
+ Muc string
+ Nick string
+ RemoteNickFormat string
+ }
+ Channel map[string]*struct {
+ IRC string
+ Mattermost string
+ Xmpp string
+ }
+ General struct {
+ GiphyAPIKey string
+ Xmpp bool
+ Irc bool
+ Mattermost bool
+ Plus bool
+ }
+}
+
+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
+}