cmd.go 588 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package run
  2. import (
  3. "fmt"
  4. "os"
  5. "os/signal"
  6. "syscall"
  7. "go.mau.fi/mautrix-discord/bridge"
  8. "go.mau.fi/mautrix-discord/config"
  9. "go.mau.fi/mautrix-discord/globals"
  10. )
  11. type Cmd struct{}
  12. func (c *Cmd) Run(g *globals.Globals) error {
  13. fmt.Printf("g.Config: %q\n", g.Config)
  14. cfg, err := config.FromFile(g.Config)
  15. if err != nil {
  16. return err
  17. }
  18. bridge, err := bridge.New(cfg)
  19. if err != nil {
  20. return err
  21. }
  22. if err := bridge.Start(); err != nil {
  23. return err
  24. }
  25. ch := make(chan os.Signal)
  26. signal.Notify(ch, os.Interrupt, syscall.SIGTERM)
  27. <-ch
  28. bridge.Stop()
  29. return nil
  30. }