diff options
author | Wim <wim@42.be> | 2016-09-18 19:21:15 +0200 |
---|---|---|
committer | Wim <wim@42.be> | 2016-09-18 19:21:15 +0200 |
commit | 7baf386edea4c71919b257d99ca7f7e07897c412 (patch) | |
tree | 5a6f7f0f506c3ab2d15d91548b1d0479bb8fb1ba /matterbridge.go | |
parent | 6e410b096ef15e976f6a2d28f3412fe9e457f95a (diff) | |
download | matterbridge-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.go | 25 |
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 {} } |