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
This commit is contained in:
Wim
2016-09-18 19:21:15 +02:00
parent 6e410b096e
commit 7baf386ede
40 changed files with 3816 additions and 2292 deletions

View File

@@ -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 {}
}