/
jarvis.go
53 lines (42 loc) · 1.05 KB
/
jarvis.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
49
50
51
52
53
package main
import (
"github.com/boltdb/bolt"
"github.com/codegangsta/cli"
//cli "github.com/jawher/mow.cli"
)
type Jarvis struct {
connections map[string]*Connection
config *JarvisConfig
db *bolt.DB
}
func start(c *cli.Context) {
var err error
// log.Debug("Inside start")
// plugins, err := pluginsAvailable(os.Getenv("HOME") + "/.jarvis/plugins/")
// if err != nil {
// log.Error("Failed to check for plugins: %v", err)
// return
// }
// loadGlispPlugins(plugins)
// return
var config *JarvisConfig = nil
var configFile string = c.String("config")
config, err = loadConfig(configFile)
if err != nil {
log.Warning("Unable to load config file %s: %v", configFile, err)
} else {
config.filename = configFile
}
config.pluginDirectory = c.String("plugins")
jarvis := &Jarvis{
connections: make(map[string]*Connection),
config: config,
}
jarvis.initConnections()
for k, v := range jarvis.connections {
err := v.startConnection()
if err != nil {
log.Error("Error connecting to %s: %v", k, err)
}
}
}