forked from jshiffer/matterbridge
33bd60528b
* Add config option MediaUploadPath MediaDownloadPath can be used instead of MediaServerUpload, for when your webserver is on the same system as matterbridge and matterbridge has write access to the serve dir. * Limit length of hash in MediaServer urls to 8chars Full SHA256 is unnecessary for uniqueness. Also; if a file has the same first 8 charachters of the SHA256 hash, it's still not a problem, as long as the filename is not the same.
59 lines
1.6 KiB
Go
59 lines
1.6 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
|
|
"github.com/42wim/matterbridge/bridge/config"
|
|
"github.com/42wim/matterbridge/gateway"
|
|
"github.com/google/gops/agent"
|
|
log "github.com/sirupsen/logrus"
|
|
prefixed "github.com/x-cray/logrus-prefixed-formatter"
|
|
)
|
|
|
|
var (
|
|
version = "1.10.2-dev"
|
|
githash string
|
|
)
|
|
|
|
func main() {
|
|
log.SetFormatter(&prefixed.TextFormatter{PrefixPadding: 13, DisableColors: true, FullTimestamp: true})
|
|
flog := log.WithFields(log.Fields{"prefix": "main"})
|
|
flagConfig := flag.String("conf", "matterbridge.toml", "config file")
|
|
flagDebug := flag.Bool("debug", false, "enable debug")
|
|
flagVersion := flag.Bool("version", false, "show version")
|
|
flagGops := flag.Bool("gops", false, "enable gops agent")
|
|
flag.Parse()
|
|
if *flagGops {
|
|
agent.Listen(&agent.Options{})
|
|
defer agent.Close()
|
|
}
|
|
if *flagVersion {
|
|
fmt.Printf("version: %s %s\n", version, githash)
|
|
return
|
|
}
|
|
if *flagDebug || os.Getenv("DEBUG") == "1" {
|
|
log.SetFormatter(&prefixed.TextFormatter{PrefixPadding: 13, DisableColors: true, FullTimestamp: false, ForceFormatting: true})
|
|
flog.Info("Enabling debug")
|
|
log.SetLevel(log.DebugLevel)
|
|
}
|
|
flog.Printf("Running version %s %s", version, githash)
|
|
if strings.Contains(version, "-dev") {
|
|
flog.Println("WARNING: THIS IS A DEVELOPMENT VERSION. Things may break.")
|
|
}
|
|
cfg := config.NewConfig(*flagConfig)
|
|
cfg.General.Debug = *flagDebug
|
|
r, err := gateway.NewRouter(cfg)
|
|
if err != nil {
|
|
flog.Fatalf("Starting gateway failed: %s", err)
|
|
}
|
|
err = r.Start()
|
|
if err != nil {
|
|
flog.Fatalf("Starting gateway failed: %s", err)
|
|
}
|
|
flog.Printf("Gateway(s) started succesfully. Now relaying messages")
|
|
select {}
|
|
}
|