1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
package main
import (
"flag"
"github.com/bjc/goctl"
"github.com/bjc/xmppbot/handlers"
"gopkg.in/inconshreveable/log15.v2"
)
func main() {
var sockPath string
flag.StringVar(&sockPath, "f", "/tmp/xmppbot", "path to UNIX control socket")
flag.Parse()
stopChan := make(chan bool, 1)
goctl.Logger.SetHandler(log15.StdoutHandler)
gc := goctl.NewGoctl(sockPath)
if err := gc.AddHandlers(
handlers.Dial{},
handlers.Login{},
handlers.Bind{},
handlers.Stop{C: stopChan},
handlers.Presence{},
handlers.Raw{},
); err != nil {
log15.Crit("Couldn't set up command handlers.", "error", err)
return
}
if err := gc.Start(); err != nil {
log15.Crit("Coudln't start command listener.", "error", err)
return
}
defer gc.Stop()
<-stopChan
}
|