summaryrefslogtreecommitdiffstats
path: root/bridge/config
diff options
context:
space:
mode:
authorWim <wim@42.be>2016-08-14 21:48:51 +0200
committerWim <wim@42.be>2016-08-14 22:44:59 +0200
commitff9479670070c0f1de4cf66622df7b69736dd22a (patch)
treec3003f19d8821900398b5b2803188555725030b6 /bridge/config
parent1f72ca4c4ecb5ab3ef831b8e70c74909f5720fb8 (diff)
downloadmatterbridge-msglm-ff9479670070c0f1de4cf66622df7b69736dd22a.tar.gz
matterbridge-msglm-ff9479670070c0f1de4cf66622df7b69736dd22a.tar.bz2
matterbridge-msglm-ff9479670070c0f1de4cf66622df7b69736dd22a.zip
Refactor bridge. Allows bridging between every protocol
Diffstat (limited to 'bridge/config')
-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
+}