From 9cb3413d9c79730fc3b61bfdef6b2c9a2003a383 Mon Sep 17 00:00:00 2001 From: Wim Date: Mon, 15 Aug 2016 23:15:22 +0200 Subject: Add Enable per section (protocol) instead of in general section --- bridge/bridge.go | 28 +++++++--------------------- bridge/config/config.go | 3 +++ 2 files changed, 10 insertions(+), 21 deletions(-) (limited to 'bridge') diff --git a/bridge/bridge.go b/bridge/bridge.go index 8fe233d6..a849ba67 100644 --- a/bridge/bridge.go +++ b/bridge/bridge.go @@ -14,47 +14,33 @@ type Bridge struct { *config.Config Source string Bridges []Bridger - kind string Channels []map[string]string ignoreNicks map[string][]string } -type FancyLog struct { - irc *log.Entry - mm *log.Entry - xmpp *log.Entry -} - type Bridger interface { Send(msg config.Message) error Name() string + Connect() error //Command(cmd string) string } -var flog FancyLog - -const Legacy = "legacy" - -func initFLog() { - flog.irc = log.WithFields(log.Fields{"module": "irc"}) - flog.mm = log.WithFields(log.Fields{"module": "mattermost"}) - flog.xmpp = log.WithFields(log.Fields{"module": "xmpp"}) -} - func NewBridge(cfg *config.Config) error { c := make(chan config.Message) - initFLog() b := &Bridge{} b.Config = cfg - if cfg.General.Irc { + if cfg.IRC.Enable { b.Bridges = append(b.Bridges, birc.New(cfg, c)) } - if cfg.General.Mattermost { + if cfg.Mattermost.Enable { b.Bridges = append(b.Bridges, bmattermost.New(cfg, c)) } - if cfg.General.Xmpp { + if cfg.Xmpp.Enable { b.Bridges = append(b.Bridges, bxmpp.New(cfg, c)) } + if len(b.Bridges) < 2 { + log.Fatalf("only %d sections enabled. Need at least 2 sections enabled (eg [IRC] and [mattermost]", len(b.Bridges)) + } b.mapChannels() b.mapIgnores() b.handleReceive(c) diff --git a/bridge/config/config.go b/bridge/config/config.go index 131ff95e..03836b63 100644 --- a/bridge/config/config.go +++ b/bridge/config/config.go @@ -26,6 +26,7 @@ type Config struct { NickServPassword string RemoteNickFormat string IgnoreNicks string + Enable bool } Mattermost struct { URL string @@ -44,6 +45,7 @@ type Config struct { RemoteNickFormat string IgnoreNicks string NoTLS bool + Enable bool } Xmpp struct { Jid string @@ -52,6 +54,7 @@ type Config struct { Muc string Nick string RemoteNickFormat string + Enable bool } Channel map[string]*struct { IRC string -- cgit v1.2.3