summaryrefslogtreecommitdiffstats
path: root/matterbridge.go
diff options
context:
space:
mode:
authorWim <wim@42.be>2016-09-18 19:21:15 +0200
committerWim <wim@42.be>2016-09-18 19:21:15 +0200
commit7baf386edea4c71919b257d99ca7f7e07897c412 (patch)
tree5a6f7f0f506c3ab2d15d91548b1d0479bb8fb1ba /matterbridge.go
parent6e410b096ef15e976f6a2d28f3412fe9e457f95a (diff)
downloadmatterbridge-msglm-7baf386edea4c71919b257d99ca7f7e07897c412.tar.gz
matterbridge-msglm-7baf386edea4c71919b257d99ca7f7e07897c412.tar.bz2
matterbridge-msglm-7baf386edea4c71919b257d99ca7f7e07897c412.zip
Refactor for more flexibility
* Move from gcfg to toml configuration because gcfg was too restrictive * Implemented gateway which has support multiple in and out bridges. * Allow for bridging the same bridges, which means eg you can now bridge between multiple mattermosts. * Support multiple gateways
Diffstat (limited to 'matterbridge.go')
-rw-r--r--matterbridge.go25
1 files changed, 15 insertions, 10 deletions
diff --git a/matterbridge.go b/matterbridge.go
index ebf6ddaf..470c6056 100644
--- a/matterbridge.go
+++ b/matterbridge.go
@@ -3,22 +3,21 @@ package main
import (
"flag"
"fmt"
- "github.com/42wim/matterbridge/bridge"
"github.com/42wim/matterbridge/bridge/config"
+ "github.com/42wim/matterbridge/gateway"
log "github.com/Sirupsen/logrus"
)
-var version = "0.6.1"
+var version = "0.7.0-dev"
func init() {
log.SetFormatter(&log.TextFormatter{FullTimestamp: true})
}
func main() {
- flagConfig := flag.String("conf", "matterbridge.conf", "config file")
+ flagConfig := flag.String("conf", "matterbridge.toml", "config file")
flagDebug := flag.Bool("debug", false, "enable debug")
flagVersion := flag.Bool("version", false, "show version")
- flagPlus := flag.Bool("plus", false, "running using API instead of webhooks (deprecated, set Plus flag in [general] config)")
flag.Parse()
if *flagVersion {
fmt.Println("version:", version)
@@ -31,11 +30,17 @@ func main() {
}
fmt.Println("running version", version)
cfg := config.NewConfig(*flagConfig)
- if *flagPlus {
- cfg.General.Plus = true
- }
- err := bridge.NewBridge(cfg)
- if err != nil {
- log.Debugf("starting bridge failed %#v", err)
+ for _, gw := range cfg.Gateway {
+ if !gw.Enable {
+ continue
+ }
+ fmt.Printf("starting gateway %#v\n", gw.Name)
+ go func(gw config.Gateway) {
+ err := gateway.New(cfg, &gw)
+ if err != nil {
+ log.Debugf("starting gateway failed %#v", err)
+ }
+ }(gw)
}
+ select {}
}