summaryrefslogtreecommitdiffstats
path: root/bridge
diff options
context:
space:
mode:
Diffstat (limited to 'bridge')
-rw-r--r--bridge/bridge.go28
-rw-r--r--bridge/config/config.go3
2 files changed, 10 insertions, 21 deletions
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