-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.go
48 lines (40 loc) · 1.2 KB
/
main.go
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
40
41
42
43
44
45
46
47
48
package main
import (
"flag"
"github.com/citizenhacks/hackbot/hackbot"
"github.com/keybase/go-keybase-chat-bot/kbchat"
"github.com/op/go-logging"
)
var log = logging.MustGetLogger("hackbot")
func main() {
var opts kbchat.RunOptions
var oneshot kbchat.OneshotOptions
flag.StringVar(&opts.KeybaseLocation, "keybase", "keybase", "keybase command")
flag.StringVar(&opts.HomeDir, "home", "", "Home directory")
flag.StringVar(&oneshot.Username, "username", "", "bot's username")
flag.StringVar(&oneshot.PaperKey, "paperkey", "", "bot's paperkey")
var clearCmds bool
flag.BoolVar(&clearCmds, "clear-cmds", false,
"clear command advertisements without running the bot. For testing.")
flag.Parse()
if oneshot.Username != "" && oneshot.PaperKey != "" {
opts.Oneshot = &oneshot
}
if opts.HomeDir != "" {
opts.StartService = true
}
if clearCmds {
kbc, err := kbchat.Start(opts)
if err != nil {
log.Fatalf("error clearing advertisemnts: %v\n", err)
}
if err := kbc.ClearCommands(); err != nil {
log.Fatalf("error clearing advertisemnts: %v\n", err)
}
return
}
bs := hackbot.NewBotServer(opts)
if err := bs.Start(); err != nil {
log.Fatalf("error running chat loop: %v\n", err)
}
}